首页 > 解决方案 > 将两个太阳黑子搜索与 OR 条件相结合

问题描述

如何将两个太阳黑子搜索条件与 OR 条件结合起来?我在这里试过↓但没有成功。

first_search_conditions = Proc.new do |s|
  s.with(:store_id, 1)
end

second_search_conditions = Proc.new do |s|
  s.with(:store_id, 2)
  s.fulltext('hello') do |ft|
    ft.fields(name_words: 90)
  end
end

def search(first_block, second_block)
  Sunspot.new_search(Offer) do |s|
    s.any_of do |scope|
      first_block.call(scope)
      second_block.call(scope)
    end
  end
end

search(first_search_conditions, second_search_conditions)

标签: ruby-on-railsrubysunspotsunspot-railssunspot-solr

解决方案


我不知道太阳黑子,但如果你有两个 procfirst_search_conditionssecond_search_conditions,并且想要分离它们,你可以构造:

Proc.new do |s|
  first_search_conditions.call(s) ||
  second_search_conditions.call(s)
end

推荐阅读