我正在使用这个插件来允许在Solr中进行空间查询。我按照文档中包括的步骤操作,空间查询已经正常工作。
现在我想要检索计算出的距离。我在solrconfig.xml文件中添加了以下行:
现在我想要检索计算出的距离。我在solrconfig.xml文件中添加了以下行:
<searchComponent name="geodistance" class="nl.jteam.search.solrext.spatial.GeoDistanceComponent">
<defaults>
<str name="distanceField">geo_distance</str>
</defaults>
</searchComponent>
我已经将“geodistance”组件添加到标准请求处理程序中:
<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。