Suchen in Daten

Suche nach Einträgen

Anfrage

Beispiel (basierend auf Datensatz ods-api-Überwachung)

mit einem Wert

Wert

explore

gibt alle Einträge mit der Zeichenfolge explore zurück

mit einem Wert in einem bestimmten Feld

id_field:value

action:explore

gibt alle Einträge mit der Zeichenfolge explore in der Spalte namens action zurück

mit mehreren Werten

Wert1 UND Wert2

explore AND search

gibt alle Einträge mit den Zeichenfolgen explore sowie search zurück

mit mindestens einem der Werte

Wert1 ODER Wert2

action OR explore

gibt alle Einträge mit entweder der Zeichenfolge explore oder search zurück

ohne einen Wert

OHNE Wert

NOT anonymous

gibt alle Einträge ohne die Zeichenfolge anonymous zurück

mit einem genauen Wert in einem Feld

#exact(id_field,"value")

#exact(user_id,"anonymous")

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)

#null(referer)

gibt alle Einträge ohne einen Wert in der Spalte namens referer zurück

wo ein Datumsfeld vor einem Wert liegt

id_date_field<=YYYY/MM/DD

timestamp<=2016/09

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)

timestamp>#now(days=-7)

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)")

#distance("48.866667,2.333333",1000)

gibt alle 1 km vom Pariser Stadtzentrum entfernt liegenden Einträge zurück

#polygon(coordinates,"(40.17887331434696,-7.3828125),(52.05249047600099,-7.3828125),(52.05249047600099,16.171875),(40.17887331434696,16.171875),(40.17887331434696,-7.3828125)")

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.

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

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 Eintragsuche hängt die Liste der verfügbaren Felder von dem Schema des Datensatzes ab. Um die Liste der verfügbaren Felder für einen bestimmten Datensatz zu erhalten, können Sie die Suche Datensatz bzw. den Nachschlag Datensatz APIs 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 zwischen start_date und end_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: birthdate >= #now() gibt sämtliche Einträge zurück, die ein Geburtsdatum, das nach oder an der gleichen DateTime liegt. Diese Funktion kann auch Parameter akzeptieren, siehe unten zu den verfügbaren Parametern der #now Funktion.

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 #null(birthdate)

exact

Diese Funktion ermöglicht die Suche nach Einträgen mit Hilfe eines Feldes, das genau dem vorgegebenen Wert entspricht. Beispielsweise gibt #exact(firstname, "Marie") nur diejenigen Einträge zurück, deren Feld "firstname" genau den Namen "Marie" und nichts anderes enthält.

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 #attr(firstname, user_first_name) von einem Benutzer mit einem SAML-Attribut user_first_name mit dem Wert "Marie" ausgeführt, werden Einträge mit einem firstname-Feld ausgegeben, das "Marie". enthält.

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.

    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.

    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

Eintragsuch akzeptieren 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): Breitengrad, Längengrad, Entfernung: geofilter.distance=48.8520930694,2.34738897685,1000

Hinweis

Dieser Anfrageparameter entspricht der am Anfang dieser Dokumentation beschriebenen Funktion #distance.

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): geofilter.polygon=(48.883086,2.379072),(48.879022,2.379930),(48.883651,2.386968)