У меня есть группа пользователей с опытом (например, "информатика") и навыками (например, "php"). Я пытаюсь найти их, подчеркивая либо фон, либо навыки (пользователь выбирает любой вариант при поиске).
Мне удалось заставить это работать, используя curl с этой строкой JSON (в этом случае я подчеркиваю фон):
'"query" : {
"bool" : {
"should" : [
{
"text" : {"skills" : {"query" : "php mysql html css"}}
},
{
"text" : {"backgrounds" : {"query" : "computer science", "boost" : 5}}
}
]
}
}'
Теперь моя проблема в том, что я не могу понять, как использовать этот JSON в качестве запроса в Tire или написать эквивалент в Tire DSL.
ИЗМЕНИТЬ
На самом деле я понял это, посмотрев исходный код Tire.
Вот как это выглядит:
results = Users.search(:load => true) do
query do
boolean do
should { string "skills:#{skills_query}", {:boost => skills_boost}}
should {string "backgrounds:#{backgrounds_query}", {:boost => backgrounds_boost}}
end
end
end
Я установил усиление на 5 для того, что хочу подчеркнуть, и на 0 для другого.