0

sunspot sunspot.github.com的示例中,belongs_to :blog关联在searchable带有integer :blog_id. 稍后,可以使用with(:blog_id, 1).

如果已经这样做了,除了关联是针对 aretailer并且索引是 on retailer_id。然而,在搜索时,我使用with(:retailer_id, 4). 如果不使用此条件,则返回的所有结果都有一个retailer_id = 4.

我已经重新索引了很多次。我已经尝试过 sunspot_rails 1.3.3 和 2.0.0。

所有其他text字段似乎都可以正常索引。

Rails 日志中显示的查询(转到 solr)似乎包含正确的字段。

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

4

1 回答 1

0

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

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

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

于 2013-03-05T05:57:02.580 回答