Zoeken in de data¶
Zoeken naar records |
Zoekopdracht |
Voorbeeld (gebaseerd op ods-api-monitoring dataset) |
---|---|---|
die een waarde bevatten |
waarde |
levert elk record op dat de string "explore" bevat |
die een waarde in een specifiek veld bevatten |
id_field:value |
levert elk record op dat de string "explore" bevat in de kolom met de naam "actie" |
die verschillende waarden bevat |
value1 EN value2 |
levert elk record op dat zowel "explore" als "zoeken" bevat |
die minstens één van de waarden bevat |
value1 OF value2 |
levert elk record op dat ofwel "explore" ofwel "zoeken" bevat |
die geen waarde bevat |
NOT-waarde |
levert elk record op dat de string "anoniem" niet bevat |
die een exacte waarde in een veld bevat |
#exact(id_field,"value") |
levert elk record op dat de exacte string "anoniem" bevat in de kolom met de naam "user_id" |
wanneer een veld leeg is |
#null(id_field) |
levert elk record op dat geen waarde heeft in de kolom met de naam "referer" |
bevat een waarde die begint met de vermelde string in het gespecificeerde veld |
#startswith(id_field,"string") |
levert elk record op dat een waarde bevat die begint met |
waarbij de datum in een veld vroeger valt dan een waarde |
id_date_field<=YYYY/MM/DD |
levert elk record op met een tijdstempel die vóór of gelijk valt met september 2016 |
wanneer de datum in een veld gelijk is aan de huidige datum min een periode |
id_date_field>#now(days=-value) |
levert elk record op met een tijdstempel die gelijk is aan de huidige dag min 7 dagen |
die een geo-veld bevat dat gelegen is in een welbepaald gebied |
voor een cirkelvormig gebied: #distance("latitude,longitude",distance) voor een veelhoek of vierkant gebied: #polygon(geo_field,"(lat1,lon1),(lat2,lon2),(lat3,lon3)") |
levert elk record op dat gelegen is op 1 km van het centrum van Parijs
levert elk record op dat zich in de veelhoek bevindt |
Query Language en Geo Filtering¶
Taal van de zoekopdracht¶
De taal van de zoekopdracht in Opendatasoft maakt het mogelijk om complexe booleaanse voorwaarden uit te drukken als een filteringcontext.
Volledige tekstzoekopdracht¶
De taal van de zoekopdracht aanvaardt volledige tekstzoekopdrachten.
Wanneer een welbepaald woord of samenstelling van woorden tussen dubbele aanhalingstekens staat, worden enkele exacte matches weergegeven (modulo een accent en hoofdletterongevoelige matches).
film
geeft resultaten die film, films, filmografie, ... bevatten"film"
geeft enkel die resultaten die precies film bevatten.
Booleaanse uitdrukkingen¶
De taal van de zoekopdracht ondersteunt de volgende booleaanse operatoren AND
, OR
en``NOT``.
Parentheses kunnen gebruikt worden om uitdrukkingen te bundelen en het standaard prioriteitsmodel te wijzigen:
NOT
AND
OR
Voorbeelden
film OR bomen
(film OR bomen) AND parijs
Zoekopdrachten voor velden¶
Een van de belangrijkste kenmerken van de taal van de zoekopdracht is een filtering per veld toe te laten. U kan veldnamen gebruiken als een prefix voor uw zoekopdrachten om de resultaten te filteren op basis van de waarde van een specifiek veld.
Voor het zoeken naar datasets, stemt de lijst met beschikbare velden precies overeen met de beschikbare metadata. Standaard:
Veldnaam |
Omschrijving |
---|---|
uitgever |
De uitgever van de dataset |
titel |
De titel van de dataset |
omschrijving |
De omschrijving van de dataset |
licentie |
De licentie van de dataset |
records_count | Het aantal records in de dataset |
gewijzigd |
De datum van laatste wijziging van de dataset |
taal |
De taal van de dataset (ISO-code) |
thema |
Het thema van de dataset |
keyword | Een trefwoord dat de dataset beschrijft |
referenties |
De referenties voor de dataset |
De domeinbeheerder zou een rijkere metadata template kunnen definiëren waardoor toegang wordt verleend aan een rijkere reeks filteringvelden.
Voor het zoeken naar het record, hangt de lijst met beschikbare velden af van het schema van de dataset. Om de lijst met beschikbare velden voor een welbepaalde dataset terug te vinden, kan u de zoek-API's voor de dataset of opzoek-API's voor de dataset gebruiken.
Er kunnen meervoudige operatorvelden gebruikt worden tussen de veldnaam en de zoekopdracht:
:
,=
,==
: Geeft resultaten waarvan het veld precies overeenstemt met de gegeven waarde (sowieso zijn de velden van het type tekst of numeriek)>
,<
,>=
,<=
: Levert resultaten op waarvan de veldwaarden groter, kleiner, groter of gelijk, kleiner of gelijk zijn aan de opgegeven waarde (het veld is van het datum- of numeriek type).[start_date TO end_date]
: Zoekt naar records waarvan de datum tussen destart_date
enend_date
ligt.
Datumformaten kunnen gespecificeerd worden in verschillende formaten: gewoon (JJJJ[[/mm]/dd]
) of ISO 8601 (JJJJ-mm-DDTUU:MM:SS
)
Voorbeelden:
film_date >= 2002
film_date >= 2013/02/11
film_date: [1950 TO 2000]
film_box_office > 10000 AND film_date < 1965
Taalfuncties van de zoekopdracht¶
Geavanceerde functies kunnen gebruikt worden in de taal van de zoekopdracht. Functienamen moeten het prefix van een scherp (#
) teken krijgen.
Naam van de functie |
Omschrijving |
---|---|
now | Geeft de huidige datum. Deze functie kan een opgeroepen als een zoekwaarde voor een veld. Wanneer ze wordt opgeroepen zonder een argument, zal ze de huidige datumtijd evalueren: "birthdate>=#now()" levert alle records op die een geboortedatum bevatten die groter is dan of gelijk is aan de huidige datumtijd. Deze functie kan ook parameters aanvaarden, zie hieronder voor de parameters die beschikbaar zijn voor de "#now"-functie. |
null | Deze functie kan opgeroepen worden om een veldnaam te specificeren als een parameter. Ze geeft de hits waarvoor geen waarde is gedefinieerd voor het gespecificeerde veld. Bijvoorbeeld "#null(birthdate)" |
exact | Deze functie maakt het mogelijk om te zoeken naar records met een veld dat exact overeenstemt met een welbepaalde waarde. Bijvoorbeeld: |
attr | Deze functie maakt het mogelijk om records te zoeken met een veld dat overeenstemt met een waarde in de SAML attributen van de gebruiker die het verzoek indient. Bijvoorbeeld |
Beschikbare parameters voor de ``#now`` functie:
jaren, maanden, weken, dagen, uren, minuten, seconden, microseconden: Deze parameters voegen tijd toe aan de huidige datum.
Bijvoorbeeld:
#now(years=-1, hours=-1)
levert de huidige datum op min een jaar en een uur.jaar, maand, dag, uur, minuut, seconde, microseconde: kan ook gebruikt worden om een absolute datum te specificeren.
Bijvoorbeeld:
#now(year=2001)
levert de huidige tijd, dag en maand op voor het jaar 2001.weekdag: specificeert een dag van de week. Deze parameter aanvaardt ofwel een geheel getal tussen 0 en 6 (waarbij 0 maandag is en 6 zondag) of de eerste twee letters van de dag (in het Engels) gevolgd door het kardinaalteken van de eerste week waarop de zoekopdracht moet worden gestart.
#now(weeks=-2, weekday=1)
levert de donderdag vóór de laatste donderdag op.#now(weekday=MO(2))
levert de maandag volgend op de volgende maandag op.
Geo Filtering¶
Zoek voor records aanvaarden geofilterparameters om te filteren in records die gelegen zijn in een specifiek geografisch gebied.
De volgende parameters kunnen gebruikt worden.
Naam van de parameter |
Omschrijving |
---|---|
geofilter.distance | Beperkt het resultaat tot een geografisch gebied dat gedefinieerd wordt door een cirkel (coördinaten van het midden van de cirkel uitgedrukt in WGS84 en afstand uitgedrukt in meter): latitude,longitude,distance: Opmerking Deze zoekparameter is het equivalent van de "#distance"-functie die beschreven staat in het begin van de documentatie. |
geofilter.polygon | Beperkt het resultaat tot het geografisch gebied dat gedefinieerd wordt door een veelhoek (coördineert de punten die uitgedrukt staan in WGS84 zoals in (lat1,lon1),(lat2,lon2),(lat3,lon3): |