Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MySQL - Pesquisa eficiente com correspondência parcial de palavras e pontuação de relevância (FULLTEXT)


O novo recurso de pesquisa de texto completo do InnoDB no MySQL 5.6 ajuda neste caso. Eu uso a seguinte consulta:
SELECT MATCH(column) AGAINST('(word1* word2*) ("word1 word1")' IN BOOLEAN MODE) score, id, column 
FROM table
having score>0
ORDER BY score 
DESC limit 10;

onde ( ) agrupa palavras em uma subexpressão. O primeiro grupo tem like word% significado; o segundo procura a frase exata. A pontuação é retornada como float.