用两种不同的分析仪索引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)
答案 0 :(得分:2)
您的示例代码会将两个几乎相同的文档(除了大小写)添加到索引中。
如何将两个字段添加到一个文档,一个区分大小写,一个不区分?您可以使用PerFieldAnalyzer
进行此操作。