David,
I was able to get it working with minor changes in my codebase. I didn't
have back port PointVectorStrategy class from 6.6.0 to 5.5.4
Code:
final int maxNumberOfCachedQueries = 256;
final long maxRamBytesUsed = 50 * 1024L * 1024L; // 50MB
final QueryCache queryCache = new
LRUQueryCache(maxNumberOfCachedQueries,
maxRamBytesUsed);
final QueryCachingPolicy defaultCachingPolicy = new
UsageTrackingQueryCachingPolicy();
this.strategy = new PointVectorStrategy(ctx, "pointvector");
Indexing:
doc.add(new DoubleDocValuesField("pointvector__x", longitude));
doc.add(new DoubleDocValuesField("pointvector__y", latitude));
Point pt = ctx.makePoint(longitude, latitude);
for (IndexableField f : strategy.createIndexableFields(pt)) {
doc.add(f);
}
doc.add(new StoredField(strategy.getFieldName(), pt.getX() + "
" +
pt.getY()));
Searching :
Point p = ctx.makePoint(lng, lat);
Circle c = ctx.makeCircle(lng, lat, deg);
SpatialArgs args = new SpatialArgs(SpatialOperation.Intersects,
c);
Query query = strategy.makeQuery(args);
ValueSource valueSource = strategy.makeDistanceValueSource(p);
Sort distSort = new
Sort(valueSource.getSortField(false)).rewrite(searcher);
int limit = 10;
TopDocs topDocs = searcher.search(query, limit, distSort);
While, I was able to get almost similar performance when compared with later
versions of Lucene 6.6.0, but the memory consumption is more with Lucene
5.5.4 almost 5x.
I am testing with 30K Lat/Lon and memory increases overtime.
Any suggestions to improve memory consumption or code?
Thanks
--
View this message in context:
http://lucene.472066.n3.nabble.com/Lucene-GeoNear-Search-and-Sort-Performance-tp4343468p4346726.html
Sent from the Lucene - Java Users mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]