【问题标题】:Lucene Spatial StrategyLucene 空间策略
【发布时间】:2017-01-16 18:15:16
【问题描述】:

我有以下用例:

我希望能够在距离给定用户 lat long 半径 x 公里的某个圆内搜索我的 lucene 文档。

我还想按距离对文档进行排序。

我还需要稍后将距离值显示给用户。

在不索引任何额外内容和考虑性能的情况下,哪种空间策略最适合我。

【问题讨论】:

    标签: lucene geospatial spatial


    【解决方案1】:

    根据您的要求,我认为最好的选择可能是PointVectorStrategy,这是最简单的,也满足您的条件:

    Simple SpatialStrategy,表示两个数字字段中的点。 该策略的最佳功能是不错的距离排序。

    特点:

    • 仅索引点;每个字段值只有一个。
    • 可以按矩形或圆形查询。
    • 支持 SpatialOperation.Intersects 和 SpatialOperation.IsWithin。
    • 需要 SpatialStrategy.makeDistanceValueSource(org.locationtech.spatial4j.shape.Point) 的 DocValues 以及使用 Circle 进行搜索。

    是的,它需要您为 DocValues 编制索引,但如果我理解正确,所有空间策略都不会免费提供所需的功能。

    【讨论】:

      猜你喜欢
      • 2017-01-24
      • 1970-01-01
      • 1970-01-01
      • 2011-04-23
      • 1970-01-01
      • 2016-05-05
      • 2013-09-29
      • 1970-01-01
      • 2014-02-23
      相关资源
      最近更新 更多