我正在使用Lucene.NET版本2.9.4。
我需要构建一个复杂的查询。我需要找到一个点附近的酒店 要做到这一点,我知道我的酒店的纬度/经度和我的推荐点的geoCoordinate。
Lucene不能做数学,所以我将用一些range
过滤器构建searchQuery。
示例:
(
(latitude:[45 TO 55] AND longitude:[5 TO 95])
OR (latitude:[40 TO 60] AND longitude:[20 TO 80])
OR (latitude:[25 TO 75] AND longitude:[25 TO 75])
OR ...
)
查询将很长,然后我担心查询可能需要花费太多时间来详细说明。
但我有意见:我添加了一个inclusive filter
来排除距离我的观点太远的所有酒店。
示例:
(
(latitude:[0 TO 100] AND longitude:[0 TO 100])
AND (
(latitude:[45 TO 55] AND longitude:[5 TO 95])
OR (latitude:[40 TO 60] AND longitude:[20 TO 80])
OR (latitude:[25 TO 75] AND longitude:[25 TO 75])
OR ...
)
)
什么是最佳解决方案?
答案 0 :(得分:0)
我接受了测试。
第二种解决方案首先不是更快。 我使用了232000个节点。