Solr получить расчетное расстояние при использовании dismax

Я начинаю думать, что то, что я хочу сделать, невозможно, но подумал, что попробую.

Я использую Solr 3.5.

В настоящее время у меня есть два типа поиска:

  1. Базовый пространственный запрос, который возвращает рассчитанное расстояние между двумя точками в поле оценки.

Пример запроса из моих журналов Solr:

?fl=*,score&sort=score+asc&start=0&q={!func}geodist()&sfield=coordinates&pt=59.2363514,18.092783&version=2
  1. Dismax-запрос, который допускает произвольные текстовые запросы по нескольким полям.

Пример запроса из журнала Solr:

mm=1&d=100.0&sfield=coordinates&qf=field1^5.0+fields2^3.0&defType=edismax&version=2&fl=*,score&start=1&q=monkeyhopper&pt=59.2363514,18.0927830000&fq={!geofilt}}

Я хочу заменить свой первый запрос запросом dismax, но мне действительно нужно получить рассчитанное расстояние в ответе. Да, я могу вычислить расстояние программно, но я бы предпочел не делать этого, поскольку Solr уже сделал это для меня.

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

2 ответа

Решение

Псевдополя теперь доступны в Solr 4+, что позволяет вам сделать это.

http://localhost:8983/solr/collection1/browse?q=*:*&rows=1000&wt=xml&pt=37.763649,-122.24313&sfield=store&fl=dist:geodist()

Например, этот запрос позволяет мне вернуть поле dist, которое содержит расстояние каждой записи до указанной точки.

Если я правильно понял, вы хотите иметь результат функции в вашем ответе Solr. Я полагаю, что проблема с SOLR-2444 - это то, что вам нужно: fl псевдополя параметров, функции и т. д. Единственная проблема заключается в том, что он был зафиксирован только в транке, поэтому он недоступен в текущей версии Solr и не будет в следующей версии 3.6. Вы должны ждать 4 релиза, но я не думаю, что это займет много времени. Возможно, вы уже можете начать играть со снимком последней успешной сборки Jenkins.

Другие вопросы по тегам