Как я могу включить различные анализаторы для каждого поля в документе, который я индексирую с 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, но я хочу использовать StandardAnalyzer для field1 и SimpleAnalyzer для field2, как я могу сделать это? То же применяется при поиске, конечно. Корректный анализатор должен быть применен для каждого поля.
PerFieldAnalyzerWrapper - это то, что вы ищете. Аналогом этого в Lucene.net является здесь .