Priorisierung von Feldern in der MySQL-Volltextsuche für erhöhte Relevanz
Angenommen, Sie stoßen auf eine Situation, in der Sie zwei Spalten haben, „Schlüsselwörter“ und „Inhalt“. ,“ in einer Tabelle und einem zugrunde liegenden Volltextindex, der beide Spalten umfasst. Sie möchten jedoch Zeilen, die einen bestimmten Begriff in der Spalte „Schlüsselwörter“ enthalten, eine höhere Relevanz verleihen als denen, die ihn in der Spalte „Inhalt“ enthalten.
Um diese Aufgabe im Zusammenhang mit der Verwendung der Funktion „Abgleichen gegen“ zu erfüllen Syntax können Sie einen vielschichtigen Ansatz implementieren:
Mehrere Volltextindizes erstellen:
Drei Volltextindizes erstellen:
Nutzen Sie die gewichtete Relevanzberechnung:
Rufen Sie in Ihrer Abfrage die Relevanzwerte für die Übereinstimmungen „Keywords“ und „Inhalt“ separat ab. Kombinieren Sie diese Ergebnisse dann mithilfe einer gewichteten Addition und weisen Sie der Relevanz der „Schlüsselwörter“ ein höheres Gewicht zu:
SELECT id, keyword, content, MATCH (keyword) AGAINST ('watermelon') AS rel1, MATCH (content) AGAINST ('watermelon') AS rel2 FROM table WHERE MATCH (keyword,content) AGAINST ('watermelon') ORDER BY (rel1*weight_factor)+(rel2) DESC
Mit diesem Ansatz können Sie die Wichtigkeit der Spalte „Schlüsselwörter“ priorisieren zur Bestimmung der Dokumentrelevanz in Ihren MySQL-Volltextsuchanfragen. Der Gewichtungsfaktor in der Berechnung ermöglicht Ihnen eine Feinabstimmung der Priorität übereinstimmender Begriffe in der gewünschten Spalte.
Das obige ist der detaillierte Inhalt vonWie kann ich Felder in der MySQL-Volltextsuche priorisieren, um ihre Relevanz zu erhöhen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!