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