当我使用 StringField 和 StoredField 时,Lucene Analyzer 有什么用

what is the use of Lucene Analyzer when i use StringField and StoredField

如果我只使用 StringField 和 StoredField 进行索引和搜索,那么分析器有什么用?

由于 StringFields 未标记化,我想知道这里分析器的实际用途是什么?

我可以在没有分析器的情况下编写 Lucene 索引吗?

如果您使用 StoredField,则根本不会进行任何索引编制。文档刚刚存储。

如果您使用 StringField,整个字段被索引为单个标记,使用分析器就没有意义了。我刚刚尝试 运行 以下代码:

Directory dir = new RAMDirectory();
Analyzer analyzer = null;
IndexWriterConfig iwc = new IndexWriterConfig(Version.LUCENE_4_10_1, analyzer);
IndexWriter indexWriter = new IndexWriter(dir, iwc);

Document doc1 = new Document();
doc1.add(new StringField("title", "aa", Field.Store.YES));
indexWriter.addDocument(doc1);
indexWriter.commit();

IndexReader reader = IndexReader.open(dir);
IndexSearcher searcher = new IndexSearcher(reader);
// print results using MatchAllDocsQuery

而且它没有抛出异常。