抱歉我的英文......
您好, 我有一个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"。
谢谢
答案 0 :(得分:1)
您可以考虑在项目中实施solr搜索或弹性搜索,以加快搜索引擎的搜索速度。 请查看此链接以获取更多信息http://lucene.apache.org/solr/
答案 1 :(得分:0)
您可以直接使用等号来获取精确记录。
SELECT * FROM `my_table` WHERE `name` = 'venezia'