Я использую шину с elasticsearch, и я в тупике, как создать логический запрос с параметром Minimum_number_should_match, а также подбросить ему набор запросов, хранящихся в блоке.
Так что я
options = {:minimum_number_should_match => 1}
s = Tire.search 'variations' do |search|
search.query do |query|
query.boolean options, &keyword_query(params[:keyword]) unless params[:keyword].blank?
end
end
def keyword_query(keyword)
lambda do |boolean|
boolean.should { string "name:*#{keyword}*"}
boolean.should { string "number:*#{keyword}*"}
boolean.should { string "nrf:*#{keyword}*"}
boolean.should { string "base_color:*#{keyword}*"}
boolean.should { string "skus:*#{keyword}*"}
boolean.should { string "color_name:*#{keyword}*"}
end
end`
Но эта опция не добавляется в конечный запрос к ElasticSearch. keyword_query возвращает лямбда. Есть ли другой способ добавить параметры к этому логическому запросу?