在 Lucene.net Spatial 3.0.3 中按距离排序
Sort by distance in Lucene.net Spatial 3.0.3
我有一个应用程序,我需要在其中按地理坐标进行搜索。我的索引构建良好,我正在使用 PointVectorStragegy。
我可以在一个圈子内搜索
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
.
有谁知道如何对搜索结果进行排序?实施自定义排序 ?已经有了吗?
如果有人确实有一些代码,非常感谢。
我环顾四周并尝试了不同的东西。
我所做的工作如下:
sort = new Sort(new SortField("Distance", SortField.SCORE, false));
True 表示首先获得最近的,否则为 false。
我有一个应用程序,我需要在其中按地理坐标进行搜索。我的索引构建良好,我正在使用 PointVectorStragegy。
我可以在一个圈子内搜索
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
.
有谁知道如何对搜索结果进行排序?实施自定义排序 ?已经有了吗? 如果有人确实有一些代码,非常感谢。
我环顾四周并尝试了不同的东西。 我所做的工作如下:
sort = new Sort(new SortField("Distance", SortField.SCORE, false));
True 表示首先获得最近的,否则为 false。