在Lucene.net空间3.0.3中按距离排序

本文关键字:距离 排序 net 空间 Lucene | 更新日期: 2023-09-27 17:51:15

我有一个应用程序,我需要通过地理坐标搜索。我的索引很好,我使用的是pointvectorstrategy。

我可以在一个圆圈内搜索

Point p = spatialContext.MakePoint(latitude, longitude);
var circle = spatialContext.MakeCircle(latitude, longitude, DistanceUtils.Dist2Degrees(distance, DistanceUtils.EARTH_EQUATORIAL_RADIUS_MI));
var args = new SpatialArgs(SpatialOperation.IsWithin, circle);
var filter = strategy.MakeFilter(args);
var records = searcher.Search(booleanQuery, filter, data.Page * pageSize, sort);

我得到的结果是好的,但它们是按降序排序的,最接近的是最后一个。目前,我使用的是Sort.RELEVANCE

有谁知道我如何对搜索结果进行排序?实现自定义排序?已经有了吗?如果有人有一些代码,非常感谢。

在Lucene.net空间3.0.3中按距离排序

我已经环顾四周,尝试了不同的东西。我所做的工作如下:

sort = new Sort(new SortField("Distance", SortField.SCORE, false));