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

MySQL - Effiziente Suche mit teilweiser Wortübereinstimmung und Relevanzbewertung (FULLTEXT)

In diesem Fall hilft die neue InnoDB-Volltextsuche in MySQL 5.6. Ich verwende die folgende Abfrage:

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;

wobei ( ) gruppiert Wörter zu einem Teilausdruck. Die erste Gruppe hat like word% Bedeutung; die zweite sucht nach dem genauen Ausdruck. Die Punktzahl wird als Float zurückgegeben.