太阳黑子无法索引整数belongs_to id字段

时间:2013-03-04 05:00:16

标签: ruby-on-rails ruby sunspot sunspot-rails

在太阳黑子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的查询似乎包含正确的字段。

还有什么可能导致这种情况?

1 个答案:

答案 0 :(得分:0)

尝试Sunspot.index(Item.first)并看到xml确实包含了retailer_id。我检查了rake任务完成导入的日志。

事实证明,我遇到的问题是因为DataMapper在调用DataMapper.finalize之前不会创建关联属性。这绝不会作为所包含的sunspot_rails tasks.rb的一部分进行重建索引。

对我来说,快速解决方案就是简单地复制rake任务,并在需要所有模型后将调用添加到finalize。