Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL match() against() - Sortierung nach Relevanz und Spalte?

Das vielleicht Geben Sie dem gewünschten Kopfteil die erhöhte Relevanz. Es wird es nicht verdoppeln, aber es könnte möglicherweise gut genug für Sie sein:

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

-- alternatively:
ORDER BY title_relevance + relevance DESC

Eine Alternative, die Sie ebenfalls untersuchen sollten, wenn Sie die Flexibilität haben, die DB-Engine zu wechseln, ist Postgres . Es erlaubt, die Gewichtung von Operatoren festzulegen und mit der Rangfolge herumzuspielen.