Lucene Spatialの理解にいくつか問題があります(ドキュメントと良い例が不足していることと、愚かさが原因の1つです!)
クエリを実行しようとしています:-
DistanceQueryBuilder builder = new DistanceQueryBuilder(new Double(point[1]), new Double(point[0]), 1000d,
"geohash", CartesianTierPlotter.DEFALT_FIELD_PREFIX, true);
ConstantScoreQuery queryx = new ConstantScoreQuery(builder.getFilter());
org.hibernate.Query fullTextQuery = fullTextSession.createFullTextQuery(queryx,Address.class);
提供された座標から1000マイル以内に結果があることは確かですが、デバッグを開始する方法がわかりません。
Lukeを使用してインデックスを確認し、指定された領域内にあるジオハッシュの少なくとも2つがLatおよびlongに正しく変換されることを確認しました。
検索で使用されているレベルである_tier_9のインデックスにもフィールドがあります。
私はそれが私が見逃している単純なものであると確信しています、どんな助けも素晴らしいでしょう。
また、以下のようにテストを行って、アドレスオブジェクトがこのメソッドによって検出され、機能することを確認しました。
QueryBuilder qb = fullTextSession.getSearchFactory()
.buildQueryBuilder().forEntity( Address.class ).get();
org.apache.lucene.search.Query qbx = qb.all().createQuery();
org.hibernate.Query fullTextQueryASD = fullTextSession.createFullTextQuery(qbx,Address.class);
List resultASD = fullTextQueryASD.list(); //return a list of managed objects
乾杯ロブ