Я использую 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?Что-нибудь еще, что я должен попытаться отладить это?