TentaQL
Der POST /Typ/Search
Endpunkt verwendet für die Suche eine eigene Such-Query-Language namens TentaQL. Hier wird TentaQL erklärt und enthält ein paar Beispiele. Die Anleitung bezieht sich auf den Typ Geschäft
wobei dieser einfach durch einen anderen Typ ausgetauscht werden kann.
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]
Boolenas
Boolenas 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]