MySQL全文自动完成搜索问题
所以我一直在努力处理FULLTEXT索引搜索,这里有一个问题已经解决了,但是它似乎对于一些搜索来说工作正常,而另一些则没有
和以前一样,在游戏桌上寻找游戏,大约有25k行,g_name上有FULLTEXT索引。 我也需要它来使用自动完成功能,例如使用不完整的搜索条件
使用搜索词,我将它分解,然后循环每次迭代,在末尾添加一个*,例如'grand * theft * auto * v *'
所以这里有一些示例搜索。 它在顶部输出查询:
BOOLEAN MODE关闭,结果正常
(链接死了)
布尔值模式开启,结果不会像预期的那样回来
(链接死了)
BOOLEAN MODE关闭,结果正常,虽然不确定'Tenchu:暗影刺客'与其他'刺客信条'游戏的得分更相关吗?
(链接死了)
BOOLEAN MODE,结果不显示“刺客信条iii”
(链接死了)
自动完成发短信的部分词,BOOLEAN模式关闭,没有结果?
(链接死了)
自动完成发短信的部分单词,BOOLEAN MODE关闭,确定结果
(链接死了)
不知道为什么打开/关闭布尔模式会产生如此奇怪的结果。 它就像我需要一些搜索和其他人一样,但我需要一个搜索查询。 分数似乎只是BS的数字从不知所措。
另外,如果我开始在混合中添加“+”来表示非可选词,它会产生更奇怪的结果。 我添加全文的全部原因是为了使事情更加灵活,并返回更多有用的结果,但似乎让事情变得更糟。
所以我的问题是 ,如何让它每次都返回有用的结果,而不考虑特定搜索词/游戏的细微差别,以及它是部分搜索还是全部词。 理想情况下,它类似于http://www.metacritic.com/(右上角的搜索框)
我教的一门课程涵盖了以下主题:https://grape.ics.uci.edu/wiki/public/wiki/cs122b-2012-spring-project4#Requirement2解决方案:https://grape.ics.uci.edu/ wiki / public / wiki / cs122b-2012-spring-mysql-fulltext请注意以下示例:
前缀搜索:SELECT entryID FROM ft WHERE MATCH(entry)AGAINST('grad *'IN BOOLEAN MODE);
Boolean搜索:SELECT entryID FROM ft WHERE MATCH(entry)AGAINST('+ graduate-michigan'IN BOOLEAN MODE);
这种方法有效,但速度缓慢,排名不佳。
链接地址: http://www.djcxy.com/p/75319.html上一篇: MySQL fulltext autocomplete search issues
下一篇: Need a better way to go about this FULLTEXT search query