【问题标题】:With sunspot-rails, how do I conditionally index specific fields?使用 sunspot-rails,我如何有条件地索引特定字段?
【发布时间】:2013-06-06 18:42:03
【问题描述】:

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

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

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

【问题讨论】:

    标签: solr sunspot sunspot-rails


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢 - 这就是我采用的方法!很高兴有外部验证我的解决方案是合理的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-01
    相关资源
    最近更新 更多