我如何使用像Like这样的FullText

时间:2015-02-19 11:02:18

标签: php mysql full-text-search

抱歉我的英文......

您好, 我有一个8.000.000记录的数据库。 我的问题是我必须找到与搜索词完全匹配的记录。

例如,如果我搜索"威尼斯"我只想要包含确切单词" venezia"。

的记录

喜欢它(但速度慢5.0176秒):

SELECT * 
FROM  `my_table` 
WHERE  `name` LIKE  'venezia'

#id #name
1 Venezia
5 Venezia
20 Venezia
....

女巫比赛快(0.0012秒)但不正确:

SELECT * 
FROM  `my_table` 
WHERE 
MATCH (name) AGAINST ('"venezia"' IN BOOLEAN MODE)

#id #name
1 Venezia        (ok)
7 Venezia Lido   (no)
21 Hotel Venezia (no)
...

我只会记录姓名值" Venezia"。

谢谢

2 个答案:

答案 0 :(得分:1)

您可以考虑在项目中实施solr搜索或弹性搜索,以加快搜索引擎的搜索速度。 请查看此链接以获取更多信息http://lucene.apache.org/solr/

答案 1 :(得分:0)

您可以直接使用等号来获取精确记录。

SELECT *  FROM  `my_table`  WHERE  `name` = 'venezia'