4

このプラグインを使用して、Solr で空間クエリを許可しています。ドキュメントに記載されている手順に従いましたが、空間クエリは正常に機能しています。

ここで、計算された距離を取得したいと思います。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 が発生します。

4

1 に答える 1

2

この問題はバージョン1.0-RC5で修正されています。このバージョンは数日前にリリースされました。

于 2010-06-23T22:11:07.440 に答える