2015-07-13 85 views
0

問題我有一大串關鍵字,我想查看它們是否包含在一個或多個文檔中。 (我的用戶想知道文檔何時發佈,如果有任何已保存的關鍵字)Lucene哪個更好:許多查詢或大量OR查詢?

  • 所以我可以做很多查詢;每個關鍵字一個。
  • 或者我可以構造查詢是這樣的:"coffee OR tea OR milk OR sugar OR beer"

現在讓我們說有超過1000個關鍵詞。

  • 哪一個可能導致疼痛和痛苦?
  • 針對一個文檔或多個文檔運行時,其中一個會更好嗎?

(我傾向於在或版本,但我很擔心我會打一些查詢長度(性能)的限制,如果我走得太遠)


一旦我有足夠的數據,我將運行一些比較和報告。

雖然現在和之後的任何提示都會很棒。

+1

你可能想看看['MemoryIndex'](http://lucene.apache.org/core/5_2_1/memory/org/apache /lucene/index/memory/MemoryIndex.html)類的任務。 –

回答

1

Single Giant Query Pro:您可以通過Lucene的所有關鍵字評分算法獲得排名。

Single Giant Query Con:你讓Lucene使用大量的內存,因爲它需要記住每個子查詢的結果(或其中的一部分),以便爲您提供將所有關鍵字考慮在內的好的排名。 OR查詢越大,Lucene需要做的就越多,而且它做得越慢。因爲OR查詢是The Devil(即使有時需要處理它們),我會說,如果可能的話,爲了你的目的,把它分開。但基準應該比詢問隨機的人意見更好:P