0
Lucene空間検索を使用して、内径と外径のリング内の点を検索します。クエリは、内側の半径の外側にある外側の半径の内側の点を返す必要があります。これどうやってやるの?以下のコードはこれを行う私の試みです。これは正しい方法ですか?Lucene geo空間リングクエリ
SpatialContext ctx = SpatialContext.GEO;
Circle innerCircle = ctx.makeCircle(lng, Lat, innerRadius);
SpatialArgs innerArgs = new SpatialArgs(SpatialOperation.IsDisjointTo, innerCircle);
Filter filter = strategy.makeFilter(innerArgs);
Circle outerCircle = ctx.makeCircle(lng, Lat, outerRadius);
SpatialArgs outerArgs = new SpatialArgs(SpatialOperation.Intersects, outerCircle);
Query query = strategy.makeQuery(outerArgs);
IndexSearcher searcher = new IndexSearcher(indexReader);
TopDocs docs = searcher.search(query, filter, 50);
クエリとフィルタを基本的に使用して、2つの空間操作のANDを実現します。しかし、ハッキーな感じ。これは使えますか?より良い方法がありますか?