【问题标题】:Sunspot failing to index an integer belongs_to id fieldSunspot 未能索引整数 belongs_to id 字段
【发布时间】:2013-03-04 05:00:16
【问题描述】:

在太阳黑子sunspot.github.com 的示例中,belongs_to :blog 关联在带有integer :blog_id 的searchable 块内被索引。之后,可以使用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,似乎包含正确的字段。

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-10
      • 2014-10-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多