Performance Lucene查询:提高性能

Performance Lucene查询:提高性能,performance,search,lucene,Performance,Search,Lucene,我使用的是Lucene.NET版本2.9.4 我需要构建一个复杂的查询。我需要在某个地点附近找到酒店。 为此,我知道我所有酒店的纬度/经度以及参考点的地理坐标 Lucene不会做数学运算,所以我将使用一些范围过滤器构建searchQuery 例如: ( (latitude:[45 TO 55] AND longitude:[5 TO 95]) OR (latitude:[40 TO 60] AND longitude:[20 TO 80]) OR (latitude:[25 TO 7

我使用的是Lucene.NET版本2.9.4

我需要构建一个复杂的查询。我需要在某个地点附近找到酒店。
为此,我知道我所有酒店的纬度/经度以及参考点的地理坐标

Lucene不会做数学运算,所以我将使用一些
范围
过滤器构建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 ...
)
(
    (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 ...
    )
)
查询将很长,那么我担心查询可能需要太多时间来详细说明

但我有个主意:我添加了一个
包容性过滤器
,以排除所有离我的观点太远的酒店

例如:

(
  (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 ...
)
(
    (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 ...
    )
)
什么是最好的解决方案?

我接受了测试

第二种解决方案并不比第一种快。 我使用了232000个节点