MySQL-Volltextsuche: Relevanz und Spaltenpriorisierung verbessern
Die Suche nach bestimmten Begriffen über mehrere Spalten in einer Datenbank hinweg ist eine häufige Aufgabe. MySQL bietet die Funktionen MATCH() und AGAINST() zur Durchführung von Volltextsuchen, sodass Benutzer Suchbegriffe und Suchmodi angeben können.
Beim Umgang mit mehreren Spalten und der Priorisierung der Suchrelevanz ergeben sich jedoch zusätzliche Überlegungen. Um Ergebnisse nach Relevanz zu ordnen, kann eine einfache Abfrage wie SELECT * FROMpages WHERE MATCH(head, body) AGAINST('einige Wörter' IN BOOLEAN MODE) verwendet werden.
Um die Relevanz basierend auf bestimmten Spalten zu priorisieren, z B. der Kopfspalte, ist ein alternativer Ansatz erforderlich. Durch die Erstellung einer zusätzlichen Spalte zum Speichern der Relevanzbewertung für die Kopfspalte können Benutzer mehr Flexibilität bei der Sortierung und Priorisierung von Ergebnissen gewinnen. Dieser Ansatz hat jedoch Auswirkungen auf die Leistung aufgrund der zusätzlichen Suchoperation in derselben Tabelle.
Eine alternative Lösung besteht darin, die zusätzliche Relevanzspalte zu nutzen und sie mit dem Relevanzwert aus der allgemeinen Volltextsuche zu kombinieren. Dies kann mit einer Abfrage wie dieser erreicht werden:
SELECT pages.*, MATCH (head, body) AGAINST ('some words') AS relevance, MATCH (head) AGAINST ('some words') AS title_relevance FROM pages WHERE MATCH (head, body) AGAINST ('some words') ORDER BY title_relevance DESC, relevance DESC
Diese Abfrage weist Ergebnissen, bei denen die Suchbegriffe in der Kopfspalte vorkommen, eine höhere Relevanz zu, während die allgemeine Suchrelevanz erhalten bleibt.
Zusätzlich mit Datenbank-Engines wie PostgreSQL, das konfigurierbare Operatorgewichtungen und Ranking-Mechanismen bietet, können erweiterte Optionen für die Relevanzpriorisierung und -bewertung bereitstellen.
Das obige ist der detaillierte Inhalt vonWie kann ich die Suchrelevanz über mehrere Spalten hinweg in der MySQL-Volltextsuche priorisieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!