使用不同的分析器索引lucene文档

时间:2011-02-11 17:40:41

标签: search indexing lucene full-text-search

用两种不同的分析仪索引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)

1 个答案:

答案 0 :(得分:2)

您的示例代码会将两个几乎相同的文档(除了大小写)添加到索引中。

如何将两个字段添加到一个文档,一个区分大小写,一个不区分?您可以使用PerFieldAnalyzer进行此操作。