2011-02-11 71 views
1

使用兩個不同分析器索引lucene文檔可以嗎?就像我需要支持區分大小寫和不區分大小寫的搜索一樣。所以想知道如果我可以使用兩臺分析儀的文件。使用不同分析器索引lucene文檔

writer.addDocument(doc,new StandardAnalyzer(Version.LUCENE_30)); writer.addDocument(doc,new custom_analyser);

我打算有一個支持所有的過濾標準分析器做除了小寫過濾器自定義分析。 雖然我試圖從索引搜索結果,我認爲我們可能會得到重複。

任何意見/想法?

編輯: @Simon

Analyzer defaultAnalyzer = new StandardAnalyzer(Version.LUCENE_30); 
PerFieldAnalyzerWrapper wrapper = new PerFieldAnalyzerWrapper(defaultAnalyzer); 
wrapper.addAnalyzer("CaseSensitiveContents", new WhitespaceAnalyzer()); 

writer = new IndexWriter(FSDirectory.open(index), wrapper, true, 
         new IndexWriter.MaxFieldLength(100)) 

doc.add(new Field("contents", parser.getReader(), TermVector.YES)); 
doc.add(new Field("CaseSensitiveContents", parser.getReader(), TermVector.YES)); 
writer.add(doc) 

回答

2

你的示例代碼將增加兩個幾乎相同的文件,(除了自己的外殼)來索引。

如何將兩個字段添加到一個文檔,其中一個區分大小寫,一個不是?你可以用這個PerFieldAnalyzer

+0

@Simon,當我嘗試將相同的內容添加到兩個不同的領域時,我得到一個流關閉異常......我該如何解決這個問題? – remo 2011-02-11 19:15:55

相關問題