0

我正在开发使用 Thinking Sphinx 的 Ruby on Rails 应用程序。不幸的是,有时(每月几次)搜索往往会返回糟糕的结果(许多文档丢失)。重新索引会有所帮助,但这不是生产的解决方案。

即使我在 Rails 控制台(如ThinkingSphinx.search 'skalee')中输入简单查询,我也遇到了不好的结果。Sphinxsearch工具返回正确的结果,因此索引显然可以正常工作。

当我输入时,ThinkingSphinx.search('skalee').results[:words]我看到了正确数量的匹配项(例如,在 30 个文档中找到的术语),但ThinkingSphinx.search('skalee').results[:matches]包含 2 个文档。中的数字results[:words]等于我得到的数字search

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

4

2 回答 2

0

刚刚偶然发现这个:

http://freelancing-god.github.com/ts/en/common_issues.html#deltas

也许您的用户权限已关闭?

于 2010-10-18T16:52:34.193 回答
0

Thinking Sphinx(或Delayed Delta,我记不太清了sphinx_deleted)为所有模型添加了特殊的内部属性(或类似的东西)。它用于过滤掉被破坏的记录。不幸的是,它有时会很糟糕。修改 gem(去掉这个属性)后一切正常。当然,我需要等到完全重新索引(我每晚都执行)才能从索引中删除被破坏的记录,但这在我的情况下是次要的缺点。或者,我可以使用 Sphinx 的杀戮列表功能来过滤掉已删除的条目。

于 2010-11-06T15:31:10.187 回答