2012-11-03 65 views
2

我在Lucene中編制索引,並且只關心從Lucene獲取相關文檔的ID(即不是字段值或任何突出顯示的信息)。鑑於這些要求,我應該使用哪個術語矢量,而不會影響搜索性能(速度)或質量(結果)?我也將使用MoreLikeThis所以不想在Lucene中使用哪個術語矢量選項?

TermVector.YES—Records the unique terms that occurred, and their counts, in each document, but doesn’t store any positions or offsets information 

TermVector.WITH_POSITIONS—Records the unique terms and their counts, and also the positions of each occurrence of every term, but no offsets 

TermVector.WITH_OFFSETS—Records the unique terms and their counts, with the offsets (start and end character position) of each occurrence of every term, but no positions 

TermVector.WITH_POSITIONS_OFFSETS—Stores unique terms and their counts, along with positions and offsets 

謝謝。

+0

您想要內部lucene文檔編號或您在其中存儲的某個ID嗎? –

回答

0

這取決於您的查詢類型......如果您有任何與您的ID相關的數據,那麼您將需要職位和/或折扣。

,如果你有這樣的文件: 「等等等等等等等等日期等等ID名稱等等」

,你只是想找到特定的ID,然後TermVector是很好。但是,如果您想根據與日期或名稱的接近程度(使用高級查詢)來查找ID,則需要添加其他術語位置。

您可以隨時嘗試了這一點,這是一個簡單的變化,假設你沒有單元測試一個十億記錄索引或東西:)

BTW ...看看我們的「的Lucene在行動」一書涵蓋了所有這些信息。