Verwenden der Volltextsuche¶
Sie können Suchfunktionen verwenden, um Zeichendaten (Text) und IPv4-Adressen in bestimmten Spalten aus einer oder mehreren Tabellen zu finden, einschließlich Felder in den Spalten VARIANT, OBJECT und ARRAY. Diese Funktion durchsucht den Text in bestimmten Spalten oder Zeichenfolgen auf der Grundlage einer Liste vorgegebener Suchbegriffe. Die Funktion gibt TRUE zurück, wenn der Text mit einem der angegebenen Suchbegriffe übereinstimmt.
In den meisten Fällen rufen Sie die Funktion SEARCH auf, indem Sie sie in der SELECT-Liste oder in der WHERE-Klausel einer SELECT-Anweisung angeben. Wenn die Funktion als WHERE-Klausel-Filter verwendet wird, gibt die Abfrage Zeilen zurück, wenn die Funktion TRUE zurückgibt.
Die Funktion SEARCH erfordert kein Setup und keine zusätzlichen Berechtigungen. Wenn Sie eine Rolle verwenden, die über die Berechtigung zum Zugriff auf die Daten in einer Spalte verfügt, können Sie mit der Funktion SEARCH nach diesen Daten suchen.
In den nächsten Abschnitten finden Sie weitere Informationen über die Funktion SEARCH und über die Optimierung der Leistung von Abfragen, wenn Sie sie verwenden:
Verwenden der Funktion SEARCH¶
Die Funktion SEARCH findet Zeichendaten (Text) in angegebenen Spalten aus einer oder mehreren Tabellen, einschließlich Feldern in VARIANT-, OBJECT- und ARRAY-Spalten.
Wenn Sie die Funktion SEARCH verwenden, zerlegt ein Textanalysator den Text in Token, d. h. diskrete Texteinheiten, wie z. B. Wörter oder Zahlen. Es wird ein Standardanalysator verwendet, wenn Sie keinen angeben. Der Analysator extrahiert Token sowohl aus den Suchbegriffen als auch aus den Daten. Wenn ein Token, das aus den Suchbegriffen extrahiert wurde, genau mit einem Token übereinstimmt, das aus einer der angegebenen Spalten oder Felder extrahiert wurde, gibt die Funktion TRUE zurück.
Das folgende Beispiel sucht nach der Zeichenfolge LEOPARD
im Text snow leopard
:
SELECT SEARCH('snow leopard','LEOPARD');
+----------------------------------+
| SEARCH('SNOW LEOPARD','LEOPARD') |
|----------------------------------|
| True |
+----------------------------------+
Das folgende Beispiel sucht nach der Zeichenfolge LION
im Text snow leopard
:
SELECT SEARCH('snow leopard','LION');
+-------------------------------+
| SEARCH('SNOW LEOPARD','LION') |
|-------------------------------|
| False |
+-------------------------------+
Die Liste der Suchbegriffe ist eine OR-Liste, sodass jede Übereinstimmung mit einem der aufgeführten Begriffe TRUE ergibt. Wenn Sie eine andere Logik für die Suche benötigen, können Sie die Abfrage ändern. Sie können zum Beispiel die Funktion SEARCH in einer Abfrage mit AND-Bedingungen mehrfach aufrufen.
Weitere Informationen über diese Funktion und zusätzliche Beispiele finden Sie unter SEARCH.
Verwenden der Funktion SEARCH_IP¶
Die Funktion SEARCH_IP findet gültige IPv4-Adressen in angegebenen Zeichenfolgenspalten aus einer oder mehreren Tabellen, einschließlich Feldern in VARIANT-, OBJECT- und ARRAY-Spalten. Die Suche basiert auf einer einzelnen IP-Adresse, die Sie angeben. Wenn diese IP-Adresse genau mit einer IP-Adresse in der angegebenen Spalte oder dem angegebenen Feld übereinstimmt, gibt die Funktion TRUE zurück.
Das folgende Beispiel sucht nach der IP-Adresse 10.10.10.1
im Text 192.0.2.146
:
SELECT SEARCH_IP('192.0.2.146','10.10.10.1');
+---------------------------------------+
| SEARCH_IP('192.0.2.146','10.10.10.1') |
|---------------------------------------|
| False |
+---------------------------------------+
Weitere Informationen über diese Funktion und zusätzliche Beispiele finden Sie unter SEARCH_IP.
Optimierung von Abfragen, die die Funktion SEARCH verwenden¶
Um die Leistung von Abfragen, die diese Funktion verwenden, zu verbessern, können Sie optional die FULL_TEXT-Suchoptimierung für eine bestimmte Spalte oder eine Reihe von Spalten in einer Tabelle aktivieren. Wenn Sie die Suchoptimierung aktivieren, wird ein neuer Suchzugriffspfad erstellt und gewartet.