Solr 3.4 Запрос о производительности GeoHash в полевых условиях - PullRequest
3 голосов
/ 14 марта 2012

Я использую Solr 3.4 с индексом 20M документов с точками широты и долготы для каждого документа.Существует уже существующее индексированное поле, которое использует solr.LatLonType с именем locLatLon.Мы пытаемся сравнить производительность этого с solr.GeoHashField.Я добавил новое поле в нашу схему, которое использует поле GeoHash с именем locLatLon_geohash, которое заполняется copyField из поля locLatLon.Я сделал пример загрузки индекса Solr, где я загрузил несколько документов, и я смог выполнить поиск по обоим полям (я удалил фактическое имя сервера Solr)

Запрос GeoHash:

http://solr_server:8983/solr/select/?q=*:*&fq={!bbox%20pt=34.1,-118.3574%20sfield=locLatLon_geohash%20d=10}

Геопространственный запрос:

http://solr_server:8983/solr/select/?q=*:*&fq={!bbox%20pt=34.1,-118.3574%20sfield=locLatLon%20d=10}

На первый взгляд эти два запроса должны возвращать очень похожие результаты.Геопространственный запрос занимает 62 мс и возвращает 179 тыс. Документов.Запрос geohash занимает 34081мс и возвращает 121 тыс. Документов.Я не слишком обеспокоен количеством возвращаемых результатов (пока), так как меня беспокоит количество времени, которое потребовалось для генерации этих результатов.

Читая о GeoHash, кажется, что этот метод запроса Solr должен бытьочень быстро, но на самом деле очень медленно.

Я попытался отладить, добавив параметр запроса debugQuery = on, но это ничего не говорит мне, что я могу использовать, не прибегая к копанию исходного кода.Ниже приведены фрагменты результатов Solr только с результирующим запросом фильтра.

Вывод GeoHash Debugging Solr:

<arr name="parsed_filter_queries">
  <str>ConstantScore(frange(ghhsin(str(locLatLon_geohash),literal(9q5cfxwybswp))):[0 TO 10.0])</str>
</arr>

Вывод GeoSpatial Debugging Solr:

<arr name="parsed_filter_queries">
  <str>+locLatLon_0_coordinate:[34.01006796645071 TO 34.18993203354929] +locLatLon_1_coordinate:[-118.46600561233814 TO -118.24879438766185]</str>
</arr>

ВОПРОС (ы) : Есть ли что-то, что я не учел при использовании типа GeoHash для Solr?Что-нибудь еще, что я должен попытаться отладить это?

1 Ответ

1 голос
/ 15 марта 2012

Прочитать комментарии к SOLR-2155 . Прикрепленный патч никогда не применялся, и билет по-прежнему не разрешен, но прикрепленный zip-файл является плагином с функциональностью, поэтому нет необходимости на самом деле патчить SOLR. Предполагается, что патч позволяет индексировать несколько точек в одном документе, но, похоже, он также реализует префикс, соответствующий геохэшу, для быстрого поиска ограничивающего прямоугольника.

...