因此,我一直在为全文索引搜索而挣扎,之前有一个问题here已经解决了,但是对于某些搜索,它似乎工作正常,而在另一些搜索中,则没有。
和以前一样,在游戏表中查找游戏,大约有25k行,g_name上有全文索引。我也需要它来使用自动完成(如不完整的搜索词)。
使用搜索项,我引爆它,然后循环每一次迭代,在结尾加上一个*,例如'grand*小偷*汽车* v*‘
这是一些样本搜索。它在顶部输出查询:
布尔模式关闭,结果正常
(链接死亡)
布尔模式开启,结果不按预期返回
(链接死亡)
布尔模式关闭,结果好,虽然不确定‘天祖:影子刺客’是如何得分更相关的其他‘刺客信条’游戏?
(链接死亡)
布尔模式开启,结果不显示“刺客信条iii”
(链接死亡)
自动完成短信部分单词,布尔模式关闭,没有结果?!
(链接死亡)
自动完成文本部分单词,布尔模式关闭,确定结果
(链接死亡)
不知道为什么打开/关闭布尔模式会产生如此奇怪的结果。这就像我需要开一些搜索和关闭一些搜索,但我需要一个单一的搜索查询。分数似乎只是无处可查的BS数字。
另外,如果我开始为非可选的单词添加“+”,它会产生甚至更奇怪的结果。我添加全文的全部原因是为了使事情更加灵活,并返回更多有用的结果,但似乎使事情变得更糟。
,所以我的问题,我如何使它每次返回有用的结果,不管这个特定搜索术语/游戏的细微差别,以及它是部分搜索,还是完整搜索。理想情况下类似于http://www.metacritic.com/的操作方式(右上搜索框)
发布于 2012-11-17 07:18:05
我教过的一个课程项目涵盖了这个主题: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注意以下示例:
前缀搜索:选择entryID从ft,其中匹配(条目)对('grad*‘在布尔模式);
布尔搜索:从ft中选择entryID匹配(条目)对(‘+研究生-michigan’在布尔模式下);
这种方法有效,但速度慢,排名不佳。
https://stackoverflow.com/questions/13418996
复制相似问题