Mysql
 sql >> Database >  >> RDS >> Mysql

Dai ad alcuni campi più rilevanza e ordina per pertinenza nella ricerca full-text di mysql

Innanzitutto, crea tre indici FULLTEXT:

* one on the title column
* one on the body column
* one on both title and body columns

Quindi, crea la tua query nel modo seguente:

SELECT field1, field2, field3, title, body,
MATCH (title) AGAINST ('word_to_search') AS rel_title,
MATCH (body) AGAINST ('word_to_search') AS rel_body
FROM table_to_use
WHERE MATCH (title,body) AGAINST ('word_to_search')
ORDER BY (rel_title*2)+(rel_body)

Questo darà al titolo 2 volte più rilevanza rispetto al corpo.

Questo è abbastanza utile quando devi consentire l'ordinamento del contenuto, ad esempio per tag (che non vengono visualizzati dagli utenti) perché ti consente di modificare i risultati da dietro le quinte.