2010-07-27 80 views
0

我正在开发使用思维狮身人面像的Ruby on Rails应用程序。不幸的是,不时地(每月几次)搜索往往会返回不好的结果(缺少许多文档)。 Reindexing帮助,但这不是一个生产解决方案。思维狮身人面像返回错误的结果(许多文件丢失)

即使我在滑轨控制台中输入简单查询(如ThinkingSphinx.search 'skalee'),我仍然遇到了不好的结果。狮身人面像search工具返回正确的结果,所以索引显然工作正常。

当我输入ThinkingSphinx.search('skalee').results[:words]时,我看到正确的命中数(例如,在30个文档中找到的术语),但ThinkingSphinx.search('skalee').results[:matches]包含2个文档。 results[:words]中的数字与我在search中获得的数字相同。

我正在使用延迟增量,但即使没有运行ts:dd,也会出现此问题。

回答

0

思维狮身人面像(或延迟的三角洲,我不记得很好)给所有模型增加了特殊的内部属性(sphinx_deleted或类似的东西)。它用于过滤掉被破坏的记录。不幸的是,它不时不好。修改了宝石(摆脱这个属性)后,一切正常。当然,我需要等到完全重新编排(我每天晚上执行)才能从索引中删除已销毁的记录,但这对我来说是一个小缺点。或者,我可以使用Sphinx的杀人列表功能来过滤掉已删除的条目。