【问题标题】:How do "hits" impact Lucene search performance?“命中”如何影响 Lucene 搜索性能?
【发布时间】:2012-12-10 19:35:45
【问题描述】:

Lucene 的搜索 API 接收“hitsPerPage”参数。看起来它对搜索性能有重大影响。例如,我尝试将其从 100 减少到 10,结果发现搜索时间减少了两倍。

可以吗?为什么它会影响搜索性能?是不是说明有问题?

【问题讨论】:

  • Lucene 上的 hitsPerPage 参数到底在哪里?命中的数量并不重要,因为 Lucene 仍然需要对所有可能的匹配进行评分。除非您正在编写自己的收集器。匹配的数量应该会影响内存分配,如果您要为所有返回的文档加载存储的字段,则会减慢您的速度。
  • @GiliNachum 我用它来创建一个Collector。你说的正是我的想法。 Lucene 处理 all 匹配,不管histPerPage,都按分数排序,所以不会影响搜索性能。
  • 由于用于排序 docId/score 对的 PriorityQueue 的大小,它会影响内存分配。此外,如前所述,如果您检索存储的字段,它也会影响。

标签: performance lucene


【解决方案1】:

hitsPerPage 指定页面的大小,可以这么说。将其视为 Google 搜索结果:您可以指定在每个页面上获得的结果数(“命中”)。

如果您只想要hitsPerPage 的点击量,那很好,但如果您想要更多,则必须检索更多页面。

为什么它会影响搜索性能?

因为当您想要更小的页面时,Lucene 可以减少工作量(通过返回更少的匹配器文档)。更多点击意味着检索更多文档,这反过来意味着在更多文件中寻找更多位置。

【讨论】:

  • 谢谢。我只检索第一页。现在我想知道,为什么它会影响搜索性能。
猜你喜欢
  • 1970-01-01
  • 2010-11-04
  • 1970-01-01
  • 2017-10-27
  • 1970-01-01
  • 1970-01-01
  • 2019-04-12
  • 1970-01-01
相关资源
最近更新 更多