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
TE
im 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]