【问题标题】:Sort by distance in Lucene.net Spatial 3.0.3在 Lucene.net Spatial 3.0.3 中按距离排序
【发布时间】:2015-05-29 14:44:39
【问题描述】:

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

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

【问题讨论】:

    标签: c# sorting lucene.net spatial


    【解决方案1】:

    我环顾四周并尝试了不同的东西。 我所做的并且有效的如下:

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

    True 优先获取最近的,否则为 false。

    【讨论】:

      猜你喜欢
      • 2015-04-27
      • 2015-03-18
      • 1970-01-01
      • 2013-11-11
      • 2018-03-13
      • 2017-07-29
      • 2018-11-18
      • 1970-01-01
      • 2018-02-02
      相关资源
      最近更新 更多