2010-07-12 24 views
1

我正在使用Lucene索引我的文檔。就我而言,每個文檔都很小,但數量很大(〜2GB)。在每個文件中,都有許多重複的詞語或術語。我想知道,如果這是我使用Lucene做索引的正確方法,或者在索引之前應該對文檔做什麼預處理。使用Lucene索引時處理重複的好方法?

以下是幾個我的文檔的例子(每列是一個字段,第一行是字段名,並從第二行開始,每行是一個文檔):

ID  category  track  keywords 
id1 cat1   track1 mode=heat treatment;repeat=true;Note=This is an apple 
id2 cat1   track2 mode=cold treatment;repeat=true;Note=This is an orange 

我要索引所有文檔,在3個字段(類別,曲目和關鍵字)上執行搜索並返回唯一的id1。

如果我直接索引這個,重複條件會影響搜索性能嗎?你有一個好主意,我應該如何做索引和搜索?提前致謝。

回答

3

重複條款可能會通過強制記錄器考慮大量文檔來影響搜索性能。如果您的條款不能區分文檔,我建議您預處理文檔以刪除這些條款。但是,您可能希望先將所有內容(例如10000-20000個文檔的樣本)編入索引,然後查看相關性和性能方面的表現。

從你描述的這種方式,您將需要指數的類別,跟蹤和關鍵字字段,可能使用KeywordAnalyzer的類別和跟蹤領域。你只需要存儲id字段。您可能需要關鍵字字段的自定義分析器,或者在實際索引之前對其進行預處理。

+1

+1先嚐試索引所有內容,然後再優化。 2GB不是那麼多的數據,而且Lucene的速度很快 – bajafresh4life 2010-07-12 13:37:14

+0

+1和我第二次bajafresh4life的評論 – 2010-07-12 15:25:18