我有以下用例:
我希望能够在给定用户lat long的半径x kms内搜索我的lucene文档。
我还想按距离对文件进行排序。
我稍后还需要distnace值才能显示给用户。
对于我而言,哪种空间策略最适合我,而无需对任何额外内容进行索引并考虑性能。
答案 0 :(得分:0)
根据您的要求,我认为最好的选择可能是PointVectorStrategy
,这是最简单的,也符合您的条件:
简单的SpatialStrategy,表示两个数字字段中的Points。 该策略的最佳功能是适当的距离排序。
特点:
- 只有索引点;每个字段值只有一个。
- 可以通过矩形或圆形查询。
- 支持SpatialOperation.Intersects和SpatialOperation.IsWithin。
- 需要SpatialStrategy.makeDistanceValueSource的DocValues(org.locationtech.spatial4j.shape.Point) 并用圆圈搜索。
是的,它需要您将DocValues编入索引,但如果我理解正确,那么任何空间策略都不会免费提供所需的功能。