我在一个Rails (2.3.11)应用程序中有几个模型,它们是使用STI构建的,并按如下方式排列:
Gallery::Base < ActiveRecord::Base (为SOLR编制索引)
Gallery::Local < Gallery::Base (为SOLR编制索引)
Gallery::Remote < Gallery::Base (未编制索引)
关于这些模型的索引,我发现了不同的结果。在我当前的开发数据库中,我有77个Gallery::Local对象,没有Gallery::Remote对象(这也意味着数据库中有77个Gallery::Base对象)
问题是Sunspot.search(Gallery::Base)和Sunspot.search(Gallery::Local)都只返回一次命中。
现在让我们来看看奇怪的部分:在一位同事使用生产数据库(包含数百个Gallery::Local对象)的计算机上,Sunspot.search(Gallery::Base)或Sunspot.search(Gallery::Local)都没有返回任何命中结果!
顺便说一句,我已经尝试在Gallery::Base和Gallery::Local上创建索引,并分别在每个索引中创建索引,结果相同。我还有许多其他的索引模型,对于这些模型,全文搜索可以正常工作。
有没有人知道这是什么原因?
发布于 2011-03-25 18:28:44
实际上发现了问题出在哪里。如果有人感兴趣,sunspot:reindex任务不会考虑命名空间和“模块化”模型。
在github上查看此pull request以获取修复(请转到比较部分)。
https://stackoverflow.com/questions/5377701
复制相似问题