Как создать запрос bool с помощьюimum_number_should_match при использовании запросов, сохраненных в виде блоков - PullRequest
2 голосов
/ 24 марта 2012

Я использую покрышку сasticsearch, и я озадачен тем, как создать логический запрос с параметром Minimum_number_should_match, а также выбросить набор запросов, хранящихся в блоке.1003 *

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

1 Ответ

0 голосов
/ 21 апреля 2012

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

...