Okay, also versuche ich, eine Volltextsuche in mehreren Spalten durchzuführen, so etwas Einfaches:
SELECT * FROM pages WHERE MATCH(head, body) AGAINST('some words' IN BOOLEAN MODE)
Jetzt möchte ich nach Relevanz ordnen (wie viele der Wörter werden gefunden?), Was ich mit so etwas machen konnte:
SELECT * , MATCH (head, body) AGAINST ('some words' IN BOOLEAN MODE) AS relevance
FROM pages
WHERE MATCH (head, body) AGAINST ('some words' IN BOOLEAN MODE)
ORDER BY relevance
Jetzt kommt der Teil, in dem ich mich verliere. Ich möchte die Relevanz in der head
Spalte priorisieren .
Ich denke, ich könnte zwei Relevanzspalten erstellen , eine für head
und eine für body
, aber zu diesem Zeitpunkt würde ich dreimal ungefähr die gleiche Suche in der Tabelle durchführen, und für das, was ich für diese Funktion mache, ist die Leistung wichtig, da die Die Abfrage wird zusammengefügt und mit anderen Tabellen abgeglichen.
Meine Hauptfrage lautet also : Gibt es eine schnellere Möglichkeit, nach Relevanz zu suchen und bestimmte Spalten zu priorisieren? (Und als Bonus wird möglicherweise sogar die Relevanz gezählt, wie oft die Wörter in den Spalten vorkommen?)
Anregungen oder Ratschläge wären toll.
Hinweis: Ich werde dies auf einem LAMP-Server ausführen. (WAMP in lokalen Tests)