Um eine Volltextsuche in MariaDB durchzuführen, benötigen Sie eine Tabelle mit dem FULLTEXT-Index auf den Feldern, die Sie durchsuchen möchten. Hier sind die allgemeinen Schritte:
1. Erstellen Sie FULLTEXT-Index:
Sie müssen einen FULLTEXT-Index für die Felder erstellen, die Sie durchsuchen möchten. Angenommen, Sie haben eine Tabelle “Artikel” mit einem Feld “content”. Sie können einen FULLTEXT-Index mit dem folgenden SQL-Befehl erstellen:
```sql
ALTER TABLE Artikel ADD FULLTEXT;
```
2. Verwenden Sie MATCH AGAINST:
Jetzt können Sie die MATCH…AGAINST-Syntax verwenden, um eine Volltextsuche durchzuführen. Der MATCH-Ausdruck gibt die Spalten an, die durchsucht werden, und der AGAINST-Ausdruck gibt den zu suchenden Text an. Hier ist ein einfaches Beispiel:
```sql
SELECT * FROM Artikel WHERE MATCH AGAINST (‘Suchbegriff’);
```
Diese Abfrage gibt alle Artikel zurück, in deren Feld “content” der Text “Suchbegriff” gefunden wurde.
3. Verstehen Sie die SUCHMODI:
Die AGAINST-Funktion unterstützt auch verschiedene Suchmodi, die das Suchverhalten verändern:
- NATURAL LANGUAGE MODE: Dies ist der Standardmodus, der eine natürlichsprachige Volltextsuche (ohne Boolean-Logik) durchführt.
- IN BOOLEAN MODE: Dieser Modus ermöglicht das Hinzufügen von Operatoren wie +, -, >, <, (), ~, *, “, um die Suche zu verfeinern.
- IN NATURAL LANGUAGE MODE WITH QUERY EXPANSION: Dieser Modus ergänzt die natürliche Sprachsuche mit einer Suche nach Wörtern, die in den am häufigsten zurückgegebenen Dokumenten gefunden wurden.
Beispiel für eine erweiterte Volltextsuche im BOOLEAN MODE:
```sql
SELECT * FROM Artikel WHERE MATCH AGAINST (‘+Suchbegriff1 +Suchbegriff2’ IN BOOLEAN MODE);
```
Diese Abfrage gibt alle Artikel zurück, in denen sowohl “Suchbegriff1” als auch “Suchbegriff2” im Feld “content” gefunden wurden.
Bitte beachten Sie, dass Sie die richtigen Berechtigungen in Ihrer Datenbank benötigen, um Indizes erstellen zu können. Wenn Ihre Tabelle bereits eine sehr große Menge an Daten enthält, kann das Erstellen des FULLTEXT-Index eine Weile dauern.