Heim  >  Artikel  >  Datenbank  >  Wie kann ich die Relevanz verschiedener Felder in der MySQL-Volltextsuche priorisieren?

Wie kann ich die Relevanz verschiedener Felder in der MySQL-Volltextsuche priorisieren?

Susan Sarandon
Susan SarandonOriginal
2024-11-04 01:44:30514Durchsuche

How Can I Prioritize Relevance in MySQL Fulltext Search for Different Fields?

Relevanzpriorisierung in der MySQL-Volltextsuche erreichen

Bei der Durchführung von Volltextsuchen in mehreren Feldern weist MySQL den in jedem Feld gefundenen Übereinstimmungen die gleiche Relevanz zu. Es kann jedoch Szenarien geben, in denen die Priorisierung bestimmter Felder wünschenswert ist, um sicherzustellen, dass sie einen größeren Beitrag zur Gesamtrelevanzbewertung leisten.

Lösung: Erstellen Sie gewichtete Indizes

Um dies zu erreichen , mehrere Volltextindizes erstellen:

  • Einer für das Feld mit höherer Priorität (z. B. Schlüsselwörter)
  • Einer für das Feld mit niedrigerer Priorität (z. B. Inhalt)
  • Eins für beide Felder kombiniert (z. B. Schlüsselwörter, Inhalt)

Beispielabfrage mit gewichteter Relevanz

Verwendung von MATCH (Schlüsselwort) GEGEN (... ) und MATCH (Inhalt) GEGEN (...) Funktionen können Sie separate Relevanzwerte für jedes Feld berechnen. Die CASE-Anweisung weist binäre Werte zu, um anzuzeigen, ob ein bestimmtes Feld den Suchbegriff enthält:

SELECT *, 
CASE WHEN Keywords LIKE '%watermelon%' THEN 1 ELSE 0 END AS keywordmatch, 
CASE WHEN Content LIKE '%watermelon%' THEN 1 ELSE 0 END AS contentmatch,

Das obige ist der detaillierte Inhalt vonWie kann ich die Relevanz verschiedener Felder in der MySQL-Volltextsuche priorisieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn