SPQL
Suchabfragen
Suchabfragen stellen Teilmengen der Daten zur Verfügung, die sich in der Datenbank des InfoSite5-Systems befinden. Diese Teilmengen lassen sich durch das zur Suchabfrage gehörige Query spezifizieren: Ein Query kann etwa alle Informationen zu einem Schlagwort suchen. Die Suchabfrage stellt dann diese Informationen aus den gefundenen Artikeln als Trefferliste zur Verfügung. Z.z. können Suchabfragen auf Artikel, Nutzer oder Templates abgesetzt werden.
Der Query-String hat dabei die folgende Syntax:
from ElementType where query [order by FieldName [asc|desc] limit [Offset] Limit
Für Suchabfragen auf Artikel kann der Teil "from ElementType where" weggelassen werden. Er ist implizit. Für die Suche nach anderen Elementen müssen folgende Schlüsselwörter verwendet werden:
- information
- user
- template
Mögliche Definitionen einer Suchabfrage wären beispielsweise:
- parent = !{Anchor}
- Listet alle Artikel eines Artikelpools mit entsprechendem Ankernamen
- Anmerkung
- Der Zugriff auf Anker erfolgt über !{Ankername} und kann je nach Objekt hinter dem Anker mit Attributen erweitert werden !{Ankername}.attribute
- root = !{Anchor}
- Listet alle Artikel rekursiv unterhalb eines Artikelpools mit entsprechendem Ankernamen
- systemlink = !{Anchor}
- Listet alle Systemlinks mit entsprechendem Ankernamen
- link = !{Anchor}
- Listet alle Links mit entsprechendem Ankernamen
- navlink = !{Anchor}
- Listet alle Navlkinks mit entsprechendem Ankernamen
- name = 'Artikelname'
- Listet alle Artikel mit entsprechendem Artikelnamen
- filename = 'Dateiname'
- Listet alle Artikel mit entsprechendem Dateinamen
- suffix = 'Endung'
- Listet alle Artikel mit entsprechender Dateiendung
- * like 'String'
- Listet alle Artikel mit entsprechendem String
- sp_variable like '%String%'
- Listet alle Artikel in der die Variable sp_variable den Inhalt String enthält
- Anmerkung
- Ohne Prozentklammerung entspräche es genau dem Wort String
Es ist natürlich möglich einzelne Suchbegriffe mit AND/ OR / NOT sinnvoll miteinander zu verknüpfen (Bspl.: Kaffee AND (Milch OR Kaffeeweisser) NOT Zucker).
Suchabfragen können über die Datenbank sortiert und die Trefferanzahl beschränkt werden. Als Syntax wird ORDER BY und LIMIT verwendet.
Beispiele
- myField = 'hallo' order by headline (aufsteigend sortieren)
- myField = 'hallo' order by headline asc (aufsteigend sortieren)
- myField = 'hallo' order by headline desc (absteigend sortieren)
- myField = 'hallo' order by headline desc, intro asc (headline absteigend, intro aufsteigend sortieren)
- myField = 'hallo' order by headline limit 5 (aufsteigend sortieren und davon die ersten fünf)
- myField = 'hallo' order by headline limit 6,5 (aufsteigend sortieren und ab der sechsten Position die nächsten fünf)
Hierbei ist zu beachten, dass das Attribut "limit" nur im Zusammenhang mit "order by" ausgeführt werden kann.