2016-03-01 3 views
0

Мне нужно получить произвольное количество результатов на основе определенных условий. Это мой вопрос:Rails + Searchkick - Случайный поиск с условиями не работает

query = Company.search('*', limit:10, where: {location: {near: [long,lat], within: distance}, confirmed: true }, execute: false) 

query.body[:query] = {function_score:{ random_score: { seed: seed } } } 

company_results = query.execute.results 

Проблема в том, что он возвращает возвращаемый поиск со случайностью, но не применяя параметры где. Это просто дает мне 10 случайных компаний из базы данных каждый раз. В течение нескольких часов искали, как исправить это, но не повезло. Подсказка:

Спасибо.

ответ

0

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

query = Company.search '*', body: { size: 10, query: { function_score: { query: { filtered: { query: { term: { confirmed: true } }, filter: { geo_distance: { distance: "150km", location: "#{lat}, #{long}" } } } }, random_score: { seed: DateTime.now.to_i } } } }