如何为使用 Lucene 索引的文档中的每个字段启用不同的分析器?例子:
RAMDirectory dir = new RAMDirectory();
IndexWriter iw = new IndexWriter(dir, new StandardAnalyzer(Lucene.Net.Util.Version.LUCENE_CURRENT), true, IndexWriter.MaxFieldLength.UNLIMITED);
Document doc = new Document();
Field field1 = new Field("field1", someText1, Field.Store.YES, Field.Index.ANALYZED, Field.TermVector.WITH_POSITIONS_OFFSETS);
Field field2 = new Field("field2", someText2, Field.Store.YES, Field.Index.ANALYZED, Field.TermVector.WITH_POSITIONS_OFFSETS);
doc.Add(field1);
doc.Add(field2);
iw.AddDocument(doc);
iw.Commit();
分析器是 IndexWriter 的一个参数,但我想对 field1 使用 StandardAnalyzer,对 field2 使用 SimpleAnalyzer,我该怎么做?当然,搜索时也是如此。必须为每个字段应用正确的分析器。
每个字段分析器包装器 http://lucene.apache.org/core/old_versioned_docs/versions/3_0_0/api/core/org/apache/lucene/analysis/PerFieldAnalyzerWrapper.html就是您正在寻找的。 Lucene.net 中的等价物是here http://lucenenet.apache.org/docs/3.0.3/dc/df9/class_lucene_1_1_net_1_1_analysis_1_1_per_field_analyzer_wrapper.html.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)