使用sunspot-rails,如何有条件地索引特定字段?

时间:2013-06-06 18:42:04

标签: solr sunspot sunspot-rails

我想在我的模型中添加一个有条件索引的太阳黑子'searchable'方法中的一些数据。理想情况下,它看起来像这样:

searchable do
    string :important_text
    if address_visible?
      string :address
    end
end

在上面的例子中,我想仅在address_visible时索引地址字段?方法(在模型上)返回true。不幸的是,address_visible?抛出'NoMethodError'因为上下文现在是Sunspot :: DSL :: Fields,而不是模型。

1 个答案:

答案 0 :(得分:2)

我认为你实际上并不能完全按照自己的意愿行事。尽管如此,当地址不可见时,您可以为地址索引不同的值。例如:

searchable do
    string :important_text
    string :address { |model| model.address_visible? ? model.address : '' }
end