在太阳黑子sunspot.github.com的示例中,belongs_to :blog
关联在searchable
块内与integer :blog_id
建立索引。之后,可以使用with(:blog_id, 1)
将搜索约束到特定博客。
如果已完成此操作,则除了retailer
的关联且索引位于retailer_id
之外。然而,在搜索时,我使用with(:retailer_id, 4)
时没有返回任何结果。如果停止此条件,则返回的所有结果都为retailer_id = 4
。
我已多次重新编制索引。我已经尝试了sunspot_rails 1.3.3和2.0.0。
所有其他text
字段似乎都可以正常编制索引。
在Rails日志中显示的转到solr的查询似乎包含正确的字段。
还有什么可能导致这种情况?
答案 0 :(得分:0)
尝试Sunspot.index(Item.first)
并看到xml确实包含了retailer_id。我检查了rake任务完成导入的日志。
事实证明,我遇到的问题是因为DataMapper在调用DataMapper.finalize
之前不会创建关联属性。这绝不会作为所包含的sunspot_rails tasks.rb的一部分进行重建索引。
对我来说,快速解决方案就是简单地复制rake任务,并在需要所有模型后将调用添加到finalize。