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

MySQL - Ricerca efficiente con corrispondenza parziale delle parole e punteggio di pertinenza (FULLTEXT)

La nuova funzione di ricerca full-text di InnoDB in MySQL 5.6 aiuta in questo caso. Uso la seguente query:

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;

dove ( ) raggruppa le parole in una sottoespressione. Il primo gruppo ha like word% significato; il secondo cerca la frase esatta. Il punteggio viene restituito come float.