SPQL

Aus SiteparkWiki
Zur Navigation springen Zur Suche springen

Beschreibung

SQPL ist ein Sprache zur Beschreibung von Suchabfragen, sog. Queries, an den IES. Die Syntax ist ähnlich der Syntax von SQL und in einigen Teilen ein Untermenge hiervon.

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.Eine Query kann z.Z.auf Artikel, Nutzer oder Templates abgesetzt werden.

Syntax

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 die entsprechenden Element-Typen verwendet werden.


Der Query-String hat dabei die folgende Syntax:


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:

  1. information
  2. user
  3. 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

  1. myField = 'hallo' order by headline (aufsteigend sortieren)
  2. myField = 'hallo' order by headline asc (aufsteigend sortieren)
  3. myField = 'hallo' order by headline desc (absteigend sortieren)
  4. myField = 'hallo' order by headline desc, intro asc (headline absteigend, intro aufsteigend sortieren)
  5. myField = 'hallo' order by headline limit 5 (aufsteigend sortieren und davon die ersten fünf)
  6. 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.