2011-02-11 43 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