Suchen in Daten¶
Suche nach Einträgen |
Anfrage |
Beispiel (basierend auf Datensatz ods-api-Überwachung) |
---|---|---|
mit einem Wert |
Wert |
gibt alle Einträge mit der Zeichenfolge explore zurück |
mit einem Wert in einem bestimmten Feld |
id_field:value |
gibt alle Einträge mit der Zeichenfolge explore in der Spalte namens action zurück |
mit mehreren Werten |
Wert1 UND Wert2 |
gibt alle Einträge mit den Zeichenfolgen explore sowie search zurück |
mit mindestens einem der Werte |
Wert1 ODER Wert2 |
gibt alle Einträge mit entweder der Zeichenfolge explore oder search zurück |
ohne einen Wert |
OHNE Wert |
gibt alle Einträge ohne die Zeichenfolge anonymous zurück |
mit einem genauen Wert in einem Feld |
#exact(id_field,"value") |
gibt alle Einträge mit der genauen Zeichenfolge anonymous in der Spalte namens user_id zurück |
wenn ein Feld leer ist |
#null(id_field) |
gibt alle Einträge ohne einen Wert in der Spalte namens referer zurück |
die einen Wert enthalten, der mit der angegebenen Zeichenfolge beginnt (im angegebenen Feld) |
#startswith(id_field,"string") |
gibt alle Einträge in der Spalte "user_id" zurück, die einen Wert enthalten, der mit "anon" beginnt |
wo ein Datumsfeld vor einem Wert liegt |
id_date_field<=YYYY/MM/DD |
gibt alle Einträge mit einem Zeitstempel vor oder gleich September 2016 zurück |
wo ein Datumsfeld das aktuelle Datum minus einem Zeitraum ist |
id_date_field>#now(days=-value) |
gibt alle Einträge mit einem dem aktuellen Tag minus 7 Tage entsprechenden Zeitstempel zurück |
mit einem in einem bestimmten Gebiet liegenden Geofeld |
für eine kreisförmige Fläche: #distance("latitude,longitude",distance) für eine mehreckige oder quadratische Fläche: #polygon(geo_field,"(lat1,lon1),(lat2,lon2),(lat3,lon3)") |
gibt alle 1 km vom Pariser Stadtzentrum entfernt liegenden Einträge zurück
gibt alle im Vieleck liegenden Einträge zurück |
Abfragesprache und Geofilter¶
Abfragesprache¶
Die Opendatasoft-Abfragesprache ermöglicht den Ausdruck komplexer Boolescher Bedingungen als Filterkontext.
Volltextsuche¶
Die Abfragesprache akzeptiert Volltextsuchen.
Wenn ein bestimmtes Wort oder Element mit Anführungszeichen versehen ist, werden nur genaue Entsprechungen zurückgegeben (Modulo-Entsprechung ohne Berücksichtigung von Akzent und Groß-/Kleinschreibung).
film
gibt Ergebnisse zurück, die film, films, filmography etc. enthalten."film"
gibt nur diejenigen zurück, die genau film enthalten.
Boolesche Ausdrücke¶
Die Abfragesprache unterstützt die Booleschen Operatoren AND
, OR
und NOT
.
Um Ausdrücke zusammenzufassen und das Standard-Prioritätenmodell zu ändern, können Klammern gesetzt werden:
NOT
AND
OR
Muster
film OR trees
(film OR trees) AND paris
Feld-Abfragen¶
Eine der wichtigsten Funktionen der Abfragesprache ist die Möglichkeit der Feld-Filterung. Sie können Feldnamen als Präfix für Ihre Abfragen nutzen, um die Ergebnisse auf der Grundlage eines speziellen Feldwerts zu filtern.
Für Datensatz-Such entspricht die Liste der verfügbaren Felder genau den verfügbaren Metadaten. Standard:
Feldname |
Beschreibung |
---|---|
publisher | Der Datensatz-Veröffentlicher |
Titel |
Der Datensatz-Titel |
Beschreibung |
Die Datensatz-Beschreibung |
license | Die Datensatz-Lizenz |
records_count | Die Anzahl der Einträge im Datensatz |
modified | Das Datum der letzten Änderung des Datensatzes |
Sprache |
Die Sprache des Datensatzes (ISO-Code) |
Thema |
Das Thema des Datensatzes |
keyword | Ein Schlüsselwort, das den Datensatz beschreibt |
Referenzen |
Die Referenzen für den Datensatz |
Der Domain-Administrator kann eine umfangreichere Metadaten-Vorlage definieren und damit Zugriff auf ein umfangreicheres Angebot an Filter-Feldern bieten.
Für die Eintragsuche hängt die Liste der verfügbaren Felder vom Schema des Datensatzes ab. Um die Liste der verfügbaren Felder für einen bestimmten Datensatz zu erhalten, können Sie die APIs Suche Datensatz bzw. den Nachschlag Datensatz verwenden.
Mehrere Operator-Felder können zwischen dem Feldnamen und der Abfrage verwendet werden:
:
,=
,==
: gibt Ergebnisse zurück, deren Feld genau mit dem vorgegebenen Wert übereinstimmt (erlaubte Felder sind Text- oder Zahlentypen)>
,<
,>=
,<=
: Geben Ergebnisse zurück, deren Feldwerte größer, kleiner, größer oder gleich, kleiner oder gleich als der vorgegebene Wert sind (vorausgesetzt das Feld ist vom Datums- oder Zahlentyp).[start_date TO end_date]
: Abfrageeinträge, deren Datum zwischenstart_date
undend_date
liegt.
Datumsformate können in verschiedenen Formaten angegeben werden: einfach (YYYY[[/mm]/dd]
) oder ISO 8601 (YYYY-mm-DDTHH:MM:SS
)
Beispiele:
film_date >= 2002
film_date >= 2013/02/11
film_date: [1950 TO 2000]
film_box_office > 10000 AND film_date < 1965
Funktionen der Abfragesprachen¶
In der Abfragesprache können erweiterte Funktionen genutzt werden. Funktionsnamen muss das Doppelkreuz (#
) vorgesetzt werden.
Funktionsname |
Beschreibung |
---|---|
now | Gibt das aktuelle Datum zurück. Diese Funktion kann als Abfragewert für ein Feld aufgerufen werden. Wenn sie ohne Argument aufgerufen wird, rechnet sie bis zur aktuellen DateTime: |
null | Diese Funktion kann aufgerufen werden, um einen Feldnamen als Parameter anzugeben. Sie gibt die Ergebnisse zurück, für die kein Wert für das angegebene Feld definiert wurde. Zum Beispiel |
exact | Diese Funktion ermöglicht die Suche nach Einträgen mit Hilfe eines Feldes, das genau dem vorgegebenen Wert entspricht. Beispielsweise gibt |
attr | Diese Funktion ermöglicht die Suche nach Einträgen mithilfe eines Feldes, das einem Wert in den SAML-Attributen des abfragenden Benutzers entspricht . Wird beispielsweise |
Verfügbare Parameter für die ``#now`` Funktion:
Jahre, Monate, Wochen, Tage, Stunden, Minuten, Sekunden, Mikrosekunden: Diese Parameter ergänzen das aktuelle Datum um die Uhrzeit.
Zum Beispiel:
#now(years=-1, hours=-1)
gibt das aktuelle Datum minus 1 Jahr und 1 Stunde zurück.Jahr, Monat, Tag, Stunde, Minute, Sekunde, Mikrosekunde: Diese Parameter können auch zur Angabe eines absoluten Datums verwendet werden.
Zum Beispiel:
#now(year=2001)
gibt die aktuelle Uhrzeit, den Tag und den Monat für das Jahr 2001 zurück.weekday: Gibt einen Wochentag an. Dieser Parameter akzeptiert entweder eine Ganzzahl zwischen 0 und 6 (wobei Montag 0 und Sonntag 6 ist) oder die ersten beiden Buchstaben des entsprechenden Tages (auf Englisch), gefolgt von der Kardinalzahl der ersten Woche, an der die Suche beginnen soll.
#now(weeks=-2, weekday=1)
gibt den Dienstag vor dem letzten an.#now(weekday=MO(2))
gibt den Montag nach dem folgenden an.
Geofilterung¶
Die Eintragsuche akzeptiert Geofilter-Parameter zum Filtern von Einträgen, die sich in einem bestimmten geografischen Gebiet befinden.
Folgende Parameter können verwendet werden:
Parametername |
Beschreibung |
---|---|
geofilter.distance | Begrenzt das Ergebnis auf ein bestimmtes geografisches Gebiet, das durch einen Kreis definiert ist (Koordinaten der Kreismitte in WGS84 angegeben, Entfernung in Metern): Hinweis Dieser Anfrageparameter entspricht der am Anfang dieser Dokumentation beschriebenen Funktion |
geofilter.polygon | Begrenzt das Ergebnis auf ein bestimmtes geografisches Gebiet, das durch ein Vieleck definiert ist (Koordinaten der Ecken in WGS84 angegeben: (lat1,lon1),(lat2,lon2),(lat3,lon3): |