Webgate Anywhere 3.3 - WebTML Tag-Referenz
query

<tml:query>

Beschreibung :

Der Inhalt des query-Tags enthält den Suchausdruck, über welchen die Kollektion gesammelt wird. Die Abfragesprache, in welcher der Suchausdruck formuliert wurde, wird als type-Attribut angegeben. Die verfügbaren Abfragesprachen sind vom verwendeten Datenbanktypen abhängig.

Normalerweise wird <tml:query> innerhalb eines Tags <tml:collection> verwendet, an welchen der tml:query-Tag sein Ergebnis automatisch weiterreicht. Pro tml:collection-Tag können mehrere tml:query-Tags angegeben werden.

Wird der tml:query-Tag ausserhalb von <tml:collection> verwendet, so kann per Kontextausdruck "query:tagid" auf das erste Ergebnisdokument des tml:query-Tags zugegriffen werden. Diese Technik kann angewandt werden, wenn lediglich das erste Ergebnisdokument von Interesse ist. Desweiteren kann der tml:query-Tag per return-Attribut direkt ein Item des ersten Ergebnisdokumentes ausgeben ohne dass <tml:collection> involviert ist.
Abgeleitet von:
<tml:[Alle Tags]>
Attribute:
Vererbte WebTML-Attributes sind ausgeblendet -> Anzeigen
Name Wert(e) Verwendung
alllanguages true|false|t|f|0|1 Bestimmt, ob die Query nur nach Dokumenten der aktuellen Sprache sucht (bei "false"), oder nach Dokumenten aller Sprachen (bei "true").
cache true|false Weist WGA an, das Ergebnis einer Query solange zu Cachen und aus dem Cache wiederzuliefern, bis die zugrundeliegende Datenbank modifiziert wird.
db Datenbank-Key Die Datenbank,in welcher gesucht werden soll. Kann weggelassen werden, wenn in der aktuellen Datenbank gesucht wird.
includecurrent true|false|t|f|1|0 Kontrolliert, ob das aktuell im Kontext befindliche Content-Dokument im Ergebnis der Abfrage enthalten sein wird, wenn es gefunden wird. Default ist "false", d.h. das aktuelle Kontext-Dokument ist nie Bestandteil eines Abfrageergebnisses.
max 1...n Bestimmt die maximale Anzahl der Dokumente, welche durch diese Abfrage zurückgeliefert werden sollen. Wird dieses Attribut angegeben, so kann dies bei einigen DB-Implementierungen die Abfrage beschleunigen.
name Name der gespeicherten Abfrage Name einer gespeicherten Abfrage für diese Datenbank. Gespeicherte Abfragen werden in der Server-Konfiguration (wga.xml) festgelegt und können mit diesem Attribut verwendet werden. In diesem Fall werden als Inhalt des Query-Tags -Tags ausgewertet, welche Parameter für diese Abfrage beinhalten können. Gespeicherte Abfragen sind ein Weg um zu erzielen, dass: - Der WebTML-Designer keine Kenntniss von der Abfragesprache und der Struktur der Datenbank haben muss - Der WebTML-Designer nur vordefinierte Abfragen ausführen darf (wenn die Option "AllowCustomQueries" auf "false" gesetzt ist)
onlypublished true|false|t|f|0|1 Bestimmt, ob die Abfrage nur auf publizierte Dokumente angewendet werden soll (bei "true" - Standard), oder auf alle Dokumente (bei "false").
options Query-Optionen Angabe von Suchoptionen, welche das Suchergebnis modifizieren, als kommaseparierte Liste. Die verfügbaren Suchoptionen sind je Datenbankplattform unterschiedlich.
return Itemname Ist dieses Attribut angegeben und der Query-Tag konnte Ergebnis-Contents ermitteln, so gibt der Tag den Wert des angegebenen Items aus dem ersten gefundenen Content-Dokument zurück. Dies ist praktisch, wenn bei den Ergebnissen einer Abfrage nur ein einzelner Wert von Interesse ist (wie es oft bei SQL-Abfragen gegen JDBC-Datenbanken der Fall ist).
role none|nav|sitemap|search Ändert die "Rolle" der Abfrage. Abfragen ignorieren normalerweise Dokumente, die in Suchen versteckt sind. Durch das explizite Setzen der Rolle des Query--Tags kann dieses Verhalten jedoch verändert werden. Demensprechend können Suchen auch in Sitemaps oder Navigatoren ausgeblendete Dokumente ignorieren, bzw. dieses Verhalten bei "none" komplett unterbinden und alle Dokumente berücksichtigen.
type formula | fulltext | view | lucene ... Wählt die Abfragesprache, in welcher die Abfrage formuliert ist. Verschiedene Datenbanktypen unterstützen verschiedene Datenbanksprachen. Bei Typen mit nur einer verfügbaren Abfragesprache kann dieses Attribut ausgelassen werden.

Tag-Infos :
error: Enthält ein Java-Exception-Objekt, wenn in der Abfrage ein Fehler aufgetreten ist. Tritt keine Fehler auf ist diese Taginfo null. Hiermit kann eine Webseite auf eine fehlgeschlagene Abfrage reagieren, indem sie dieses Taginfo abfragt, z.B.:

<tml:case condition="taginfo('querytag', 'error') != null">

fullquery
: Die im Endeffekt ausgeführte Abfrage nach impliziten Additionen und Modifikationen,

unspecificquery: Diese Tag-Info ist nur beim Querytype "Lucene" verfügbar. Mögliche Werte sind "true" oder "false". Unspecificquery wird auf "true" gesetzt, wenn eine zu ungenaue Lucene-Abfrage durchgeführt worden ist. Z.B. sucht ein Benutzer nach allen Begriffen die mit "a" beginnen über die Abfrage "a*". Solche Abfrage sind sehr Rechenzeitaufwändig. Aus diesem Grund ist die maximale Anzahl an Kombinationen für einen Suchbegriff standardmäßig auf 1024 begrenzt. Eine Abfrage mit "a*" ist also nur dann möglich, wenn der Index nicht mehr als 1024 verschiedene Begriffe enthält, die mit "a" beginnen. Sollte es dennoch gewünscht sein, dass Benutzer sehr ungenaue Suchbegriffe verwenden können, ist je nach Indexgröße der Parameter für die maximale Anzahl an Kombinationen entsprechend zu erhöhen. Näheres hierzu entnehmen sie bitte dem Kapitel "Lucene Volltextindizierung" im Administrationshandbuch.

Beispiele:

Der normale Aufbau einer Abfrage mit einem tml:query-Tag innerhalb von <tml:collection>:

<tml:collection>

<tml:query id="adressen">

</tml:collection>

In diesem Beispiel wird <tml:query> ohne <tml:collection> verwendet. In einem folgenden tml:item-Tag wird ein Feld des ersten Ergebnisdokumentes der Abfrage ermittelt:

<tml:query id="bill" db="names" type="view">people;Bill Gates;True</tml:query>
<tml:item context="query:bill" name="phone"/>

Im folgenden Beispiel wird der tml:query-Tag dazu benutzt um lediglich ein Feld des ersten Ergebnisdokumentes auszugeben. Dazu wird das return-Attribut benutzt:

<tml:query return="Name">Select * from customers where nr = '1'</tml:query>


<< path alllanguages >>