sql >> Base de Datos >  >> RDS >> Mysql

Dé a algunos campos más relevancia y ordene por relevancia en la búsqueda de texto completo de mysql

Primero, cree tres índices FULLTEXT:

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

Luego, construye tu consulta de la siguiente manera:

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)

Esto le dará al título 2 veces más relevancia que al cuerpo.

Esto es muy útil cuando necesita permitir que el contenido se ordene, por ejemplo, por etiquetas (que los usuarios no ven) porque le permite modificar los resultados entre bastidores.