Я использую этот плагин, чтобы разрешить пространственные запросы в Solr. Я выполнил шаги, включенные в документацию, и мои пространственные запросы работают нормально.
Теперь я хочу получить вычисленное расстояние. Я добавил эти строки в файл solrconfig.xml:
<searchComponent name="geodistance" class="nl.jteam.search.solrext.spatial.GeoDistanceComponent">
<defaults>
<str name="distanceField">geo_distance</str>
</defaults>
</searchComponent>
И я добавил в стандартный обработчик запросов компонент "георасстояние":
<requestHandler name="standard" class="solr.SearchHandler" default="true">
<lst name="defaults">
<str name="echoParams">explicit</str>
</lst>
<arr name="components">
<str>query</str>
<str>geodistance</str>
</arr>
</requestHandler>
Затем, когда я запускаю такой запрос, как "q={!spatial lat=41.641184 long=-0.894032 radius=2 calc=arc unit=km} cafeteria", он работает, но только в первый раз. Когда я снова запускаю тот же запрос, я получаю эту ошибку:
GRAVE: java.lang.NullPointerException
at nl.jteam.search.solrext.spatial.DistanceFieldValueSource.getValues(DistanceFieldValueSource.java:57)
at nl.jteam.search.solrext.spatial.GeoDistanceComponent.process(GeoDistanceComponent.java:60)
at org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:195)
at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:131)
at org.apache.solr.core.SolrCore.execute(SolrCore.java:1316)
Я понятия не имею, где ошибка, потому что в первый раз запрос работает, и я получаю вычисленное расстояние в поле «geo_distance». Но при повторении запроса я получаю исключение NullPointerException.