按Lucene.net Spatial 3.0.3中的距离排序

时间:2015-05-29 14:44:39

标签: c# sorting lucene.net spatial

我有一个应用程序,我需要按地理坐标搜索。我的索引构建正常,我正在使用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

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

1 个答案:

答案 0 :(得分:0)

我环顾四周,尝试了不同的事情。 我所做的工作如下:

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

为真以获得最接近的第一个,否则为假。