Wie ordne ich MYSQL-Volltextsuchergebnisse nach Relevanz?
Frage:
Wie mache ich MYSQL-Volltextsuchergebnisse nach Relevanz ordnen, genaue Übereinstimmungen priorisieren und Teilübereinstimmungen alphabetisch sortieren?
Antwort:
Um eine Volltextsuche in MYSQL durchzuführen, verwenden Sie die Funktion MATCH(. ..) AGAINST(...)-Konstrukt anstelle des LIKE-Operators. MATCH(...) AGAINST(...) gibt für jedes Ergebnis einen Relevanzwert zurück, der zum Sortieren der Ergebnisse nach Relevanz verwendet werden kann.
Hier ist eine modifizierte Abfrage, die die Volltextsuche verwendet und die Ergebnisse nach sortiert Relevanz:
SELECT * FROM `vocabulary` WHERE MATCH(`translation`) AGAINST ('word') ORDER BY MATCH(`translation`) AGAINST ('word') DESC;
Diese Abfrage gibt zuerst Ergebnisse mit einer genauen Übereinstimmung zurück, gefolgt von Teilübereinstimmungen, sortiert in absteigender Reihenfolge der Relevanz.
Beispiel:
Betrachten Sie die folgende Vokabeltabelle:
id | translation |
---|---|
1 | word |
2 | crossword |
3 | words |
4 | wordsmith |
Das Ausführen der obigen Abfrage mit dem Suchbegriff „Wort“ würde die folgenden Ergebnisse sortiert nach Relevanz zurückgeben:
id | translation |
---|---|
1 | word |
2 | crossword |
3 | words |
4 | wordsmith |
Das obige ist der detaillierte Inhalt vonWie ordne ich MySQL-Volltextsuchergebnisse nach Relevanz?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!