Как ускорить поиск, если результат функции меньше поля? - PullRequest
2 голосов
/ 02 декабря 2011

У меня есть форма, в которой кто-то, кто делает доставку, выбирает на карте свое местоположение, а затем устанавливает радиус, который он посещает.

Когда пользователь заходит на мой сайт, он может выполнитьзапрос, и я хочу повысить продавцов, которые посещают местоположение клиента.

По сути, мне нужно сделать функцию HSIN на solr между продавцом и точкой клиента и повысить, если результат меньше, чем радиус.

Функция Boost позволяет мне увеличивать результат запроса (ведь это не так), а Boost Query не позволяет мне использовать функцию в качестве диапазона (например: map_area_radius_f: [* TO HSIN(...)] ^ 6.0)

Можете ли вы, ребята, помочь мне?

Редактировать: Jpountz спросил, какой синтаксис я использую, но он все равно не работает.Я пробовал что-то вроде

bq=[* TO HSIN(6371000, 1, map_area_latitude, map_area_longitude, params[:latitude], params[:longitude])]^6.0

, но возникает ошибка разбора.PS: 6371000 - это радиус Земли в метрах.

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...