Как создать логический запрос с Minimum_number_should_match при использовании запросов, сохраненных в виде блоков

Я использую шину с 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 возвращает лямбда. Есть ли другой способ добавить параметры к этому логическому запросу?


person timting    schedule 23.03.2012    source источник
comment
Разобрался - сейчас шина добавляет параметры к логическому запросу только при первом вызове логического. У меня была куча других логических запросов до того, который я перечислил выше, и поэтому мои варианты были сброшены в эфир.   -  person timting    schedule 24.03.2012
comment
Вы должны опубликовать свое решение в качестве ответа, а затем принять его. Дополнительную информацию см. здесь   -  person Azolo    schedule 24.03.2012
comment
Опубликуйте свой проклятый ответ, черт возьми !!!!!!   -  person Henley    schedule 12.01.2014


Ответы (1)


Разобрался - на данный момент шина добавляет параметры к логическому запросу только при первом вызове логического значения. У меня была куча других логических запросов до того, который я перечислил выше, и поэтому мои варианты были сброшены в эфир.

person timting    schedule 20.04.2012