Performance Lucene查询:提高性能
我使用的是Lucene.NET版本2.9.4 我需要构建一个复杂的查询。我需要在某个地点附近找到酒店。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不会做数学运算,所以我将使用一些
范围
过滤器构建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个节点