Suchfunktionen für Db2 Text Search

Nach der Aktualisierung eines Textsuchindex können Sie mit den SQL-Skalarsuchfunktionen CONTAINS bzw. SCORE oder mit der Funktion xmlcolumn-contains Suchvorgänge durchführen.

Suchvorgänge in Textsuchindizes umfassen sowohl einfache Abfragen, z. B. Abfragen für das Vorkommen eines einzigen Worts in einer Überschrift, als auch komplexe Abfragen wie z. B. Abfragen, bei denen boolesche Operatoren oder das Boosting von Begriffen verwendet werden/wird. Die Suche in Textsuchindizes wird nicht nur durch Operatoren verbessert, mit denen eine Eingrenzung Ihrer Suche ermöglicht wird, sondern auch durch Funktionen wie z. B. Synonymverzeichnisse und Unterstützung auf sprachlicher Ebene.

Es stehen Ihnen die folgenden Suchfunktionen zur Verfügung:
  • Mit der SQL-Funktion CONTAINS und der XML-Funktion xmlcolumn-contains können Abfragen für bestimmte Wörter oder Wortfolgen erstellt werden.
  • Mit der SQL-Funktion SCORE kann die Relevanz eines gefundenen Textdokuments abgerufen werden.

Die skalaren Textsuchfunktionen CONTAINS und SCORE werden nahtlos in SQL integriert. Sie können die Suchfunktionen für die gleichen Komponenten verwenden, für die auch SQL-Standardausdrücke in SQL-Abfragen eingesetzt werden. Die SQL-Skalarfunktion SCORE gibt einen Anzeiger für den Grad der Übereinstimmung der Textdokumente mit einer angegebenen Suchbedingung zurück. Der Ausdruck SELECT der SQL-Abfrage legt fest, welche Informationen an Sie zurückgegeben werden.

Die Funktion CONTAINS sucht nach Übereinstimmungen für ein Wort oder einen Ausdruck und kann ähnlich wie das SQL-Vergleichselement LIKE mit Platzhalterzeichen verwendet werden, um nach Übereinstimmungen für Unterzeichenfolgen zu suchen. Darüber hinaus kann die Funktion nach exakten Übereinstimmungen für Zeichenfolgen suchen wie der SQL-Operator = (gleich). Es gibt jedoch bedeutende Unterschiede bei der Verwendung der Funktion CONTAINS und der Verwendung des SQL-Vergleichselements LIKE bzw. des Operators =. Das Vergleichselement LIKE und der Operator = suchen nach Mustern in einem Dokument, während die Funktion CONTAINS die Verarbeitung auf linguistischer Basis verwendet - sie sucht nach verschiedenen Formen des Suchbegriffs. Beispiel: Auch ohne die Verwendung von Platzhalterzeichen gibt die Suche nach dem Begriff work Dokumente zurück, die working und worked enthalten. Darüber hinaus ist es möglich, dem Textsuchindex ein Synonymverzeichnis hinzuzufügen; dadurch wird der Suchbereich vergrößert. Beispiel: Sie können die Begriffe laptop und ThinkPad einer Gruppe zuordnen; wenn dann nach dem Begriff notebook computers gesucht wird, werden diese beiden Begriffe zurückgegeben. Was XML-Dokumente betrifft, so ermöglicht die XML-Suchargumentsyntax Ihnen die Suche nach Text innerhalb von Tags und Attributen. Außerdem muss für XQuery-Suchvorgänge die Groß-/Kleinschreibung beachtet werden.

Beachten Sie, dass der Db2® optimierer abschätzt, wie viele Textdokumente voraussichtlich einem CONTAINS-Prädikat entsprechen werden und wie kostspielig die verschiedenen Zugriffsplanalternativen sein werden. Das Optimierungsprogramm wählt den günstigsten Zugriffsplan aus.

Die Funktion xmlcolumn-contains ist eine integrierte Db2 -Funktion, die XML-Dokumente aus einer Db2 -XML-Datenspalte auf der Basis einer Textsuche zurückgibt, die von der Db2 Text Search -Engine ausgeführt wird. Sie können die Funktion xmlcolumn-contains in XQuery-Ausdrücken verwenden, um Dokumente auf der Basis einer Suche mit bestimmten Dokumentelementen abzurufen. Beispiel: Wenn Ihre XML-Dokumente Produktbeschreibungen und Preise für Spielzeug enthalten, das Sie verkaufen, können Sie mithilfe der Funktion xmlcolumn-contains in einem XQuery-Ausdruck die Beschreibung sowie die Preiselemente durchsuchen, und es werden nur die Dokumente zurückgegeben, die den Begriff outdoors, aber nicht den Begriff pool enthalten und weniger als $ 25.00 kosten.

Es gibt bedeutende Unterschiede bei der Verwendung der Funktion xmlcolumn-contains und der XQuery-Funktion contains. Mit der XQuery-Funktion contains wird eine Unterzeichenfolge in einer Zeichenfolge gesucht; es wird nach einer exakten Übereinstimmung des Suchbegriffs oder des Ausdrucks gesucht. Die XQuery-Funktion xmlcolumn-contains funktioniert jedoch ähnlich wie die Funktion CONTAINS; die einzige Ausnahme ist, dass sie nur mit XML-Spalten arbeitet. Außerdem gibt sie XML-Dokumente zurück, die den Suchbegriff oder den Ausdruck enthalten; contains hingegen gibt nur einen Wert wie z. B. 1, 0 oder NULL zurück, und gibt so an, ob der Suchbegriff gefunden wurde.