2010-04-27 39 views
0

使用lucene進行搜索時遇到問題。lucene搜索功能在大尺寸文件中工作嗎?

首先,在lucene索引函數中,它適用於巨大文件。如.pst文件,Outlook郵件存儲。它可以建立包含.pst所有信息的索引文件。唯一的問題是大的時候,包括非常多的話。

所以當我使用lucene進行搜索時,它只能處理這個索引文件的前面部分,如果一個詞出現在索引文件的後部,它就無法找到這個詞並且結果中沒有命中。但是當我在調試時以愚蠢的方式將這個索引文件分成幾個部分,並且搜索每個部分時,它可以很好地工作。

所以我想知道如何分開索引文件,多少大小應該是搜索的限制?

歡呼和等待4回覆。

++++++++++++++++++++++++++++++++++++++++++++++ ++++

嗨,在那裏,按照Coady siad,我將長度設置爲最大2^31-1。但搜索結果仍然不能包含我想要的內容。 簡單地說,我將doc字轉換爲字符串數組[]來分析, 一個doc字有79680個字包含空格和任何符號。 當我搜索某個單詞時,它只返回300個計數,實際上它有300多個結果。同樣的原因,當我在文檔的後面搜索一個單詞時,它也找不到。 //////////////設定長度

idexwriter.SetMaxFieldLength(2147483647);

////////////////////搜索

IndexSearcher的搜索器=新ndexSearcher(Program.Parameters [ 「INDEX_LOCATION」]的ToString()); Hits hits = searcher.Search(query);

這是我的代碼,與其他人一樣。當我需要統計文檔中的每個字詞時,發現問題。所以我也發現它不能在doc的後面搜索單詞。

請幫我找,有沒有設置搜索長度的地方?你如何解決這個問題。

+0

您確定缺少結果嗎?因爲索引太大?也許你應該發佈一些代碼來說明這些詞是如何被編入索引的。 – 2010-04-27 13:40:05

+1

我想,你使用的是2.4或更高版本。在較新的版本中,需要明確指定可索引字段的長度以避免無聲截斷。科迪已經給出了正確的答案。 – 2010-04-27 16:11:18

+0

請參閱我的回覆。 – user321952 2010-04-28 11:35:15

回答

5

如果您可以從文檔的正面獲取搜索結果,則文檔可能比IndexWriter's maxFieldLength長。嘗試將其設置爲更高的數字(默認值爲10000)。

+0

看到我的回覆,請幫助我,告訴我你需要知道我的代碼 – user321952 2010-04-29 06:48:26