【问题标题】:Lucene query: increasing performanceLucene 查询:提高性能
【发布时间】:2013-09-26 21:59:20
【问题描述】:

我使用的是 Lucene.NET 2.9.4 版。

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

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 ...
    )
)

什么是最好的解决方案?

【问题讨论】:

    标签: performance search lucene


    【解决方案1】:

    我接受了测试。

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

    【讨论】:

      猜你喜欢
      • 2013-08-03
      • 2021-08-03
      • 2013-02-17
      • 2021-12-15
      • 2014-04-09
      • 2013-01-16
      • 2011-12-03
      • 2014-04-04
      相关资源
      最近更新 更多