2010-07-27 50 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的殺人列表功能來過濾掉已刪除的條目。