Как преобразовать эластичный поиск JSON в запрос, совместимый с шинами

У меня возникли проблемы с преобразованием следующего допустимого запроса JSON в эластичный поиск в эквивалент ruby ​​gem 'tire'. Любая помощь очень ценится...


{ 
    "query" : {
        "term" : { "_all" : "coffee" }
    },
    "filter" : {
        "or" : [
            {
                "term" : { "email_store" : true }
            },
            {
                "term" : { "phone_store" : false }
            }
        ]
    }
}

person Kirk    schedule 28.09.2012    source источник


Ответы (1)


Это будет эквивалентная запись в Tire DSL:

require 'tire'

s = Tire.search('articles') do
  query do
    term :_all, 'coffee'
  end

  filter :or, { term: { email_store: true  } },
              { term: { phone_store: false } }
end

puts s.to_json

Взгляните на https://github.com/karmi/tire/blob/master/test/integration/filters_test.rb#L25-29.

person karmi    schedule 29.09.2012