TentaQL (Such-Query-Language)
Der POST /Typ/Search Endpunkt verwendet für die Suche eine eigene Such-Query-Language namens TentaQL. In diesem Kapitel wird TentaQL anhand von Beispielen erklärt. Die Anleitung bezieht sich auf den Typ Geschäft. Die Funktionsweise kann analog auf allen anderen Typen angewendet werden.
Vereinfachtes Geschäfts-Modell:
Geschaeft:
- Titel (Textfeld)
- Beginn (Date)
- Dokumente (Assoziation auf Dokumente, Typ Dokument)
Suche nach einzelne Felder
Ein einfaches Feld (Text, Numeric, Datum, Enum, Boolean) hat die folgende Syntax: <FELD>[<SUCHTEXT>].
- Beispiel: Alle Geschäfte mit einem
TEim Titel:Titel[TE*] - Beispiel: Alle Geschäfte mit Beginndatum zwischen
01.01.2020 und 01.01.2021:Beginn[01.01.2020 - 01.01.2021]
Booleans
Booleans werden mit [yes] bzw. [no] abgefragt.
Volltext
Es kann jeweils immer über den Volltext gesucht werden: volltext[<SUCHTEXT>]
GUID
Die GUID's können bei der Suche mit einem Space oder Komma separiert werden: GUID[<GUID1>, <GUID2>, <GUID3>]
Suche nach Assoziationen
Die Syntax für eine Suche über Assoziationen ist die folgende: <FELD> contains (<Typ> WHERE <Query>) wobei <Query> eine eigene Query für den Typ der Assoziation ist.
Dokumente ist eine Assoziation auf Geschäft. Ein Geschäft kann X Dokumente haben.
- Beispiel: Alle Geschäfte mit einem Dokument welches Test heisst: Dokumente contains (Dokument WHERE Titel[Test])
- Beispiel: Alle Geschäfte mit einem Dokument welches Test heisst und die Dateiendung docx hat: Dokumente contains (Dokument WHERE Titel[Test] AND Dateiendung[docx])
Zusammensetzen
Die Queries lassen sich beliebig lang zusammenketten:
- AND - UND Zusammensetzung
- OR - ODER Zusammensetzung
Negieren
Mit NOT kann eine Kondition negiert werden: NOT <FELD>[<SUCHTEXT]