Lucene哪个更好:很多查询或大量的OR查询?

时间:2015-07-13 02:18:43

标签: performance search lucene lucene.net

问题我有一个很大的关键字列表,如果它们包含在一个或多个文档中,我希望看到它们。 (我的用户想知道文档何时发布,是否有任何已保存的关键字)

  • 所以我可以提出很多疑问;每个关键字一个。
  • 或者我可以构建一个类似于"coffee OR tea OR milk OR sugar OR beer"
  • 的查询

现在我们可以说有超过1,000个关键词。

  • 哪一个可能导致痛苦和痛苦?
  • 当针对一个文档或多个文档运行时,一个人会比另一个更好吗?

(我倾向于OR版本,但我担心如果我走得太远,我会达到一些查询长度(性能)限制。

一旦我有足够的数据,我将进行一些比较并报告回来。

从现在到现在之间的任何提示都会很棒。

1 个答案:

答案 0 :(得分:1)

Single Giant Query Pro:您可以通过Lucene的所有关键字评分算法获得排名。

Single Giant Query Con:你让Lucene使用大量的内存,因为它需要记住每个子查询的结果(或其中的一部分),以便为你提供考虑所有关键字的好排名。 OR查询越大,Lucene需要做的内存越多,它就越慢。

我说,如果可能的话,为了你的目的,将其分解,因为OR查询是The Devil(即使它有时需要处理它们);但基准应该比询问随机人员的意见更好:P