Java Lucene在索引和搜索时是否需要相同的Analyzer实例?

Java Lucene在索引和搜索时是否需要相同的Analyzer实例?,java,android,lucene,indexing,analyzer,Java,Android,Lucene,Indexing,Analyzer,我正在用Lucene在Android上创建一个字典应用程序。在索引和搜索时,我是否需要提供相同的StandardAnalyzer实例,或者我可以为两者提供一个新实例 例如,当我准备创建索引时,我会执行以下操作: Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_36); IndexWriter writer = new IndexWriter(directory, new IndexWriter

我正在用Lucene在Android上创建一个字典应用程序。在索引和搜索时,我是否需要提供相同的
StandardAnalyzer
实例,或者我可以为两者提供一个新实例

例如,当我准备创建索引时,我会执行以下操作:

Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_36);
IndexWriter writer = new IndexWriter(directory,
                    new IndexWriterConfig(Version.LUCENE_36, analyzer));
TokenStream ts = TokenSources.getAnyTokenStream(indexSearcher.getIndexReader(),
                    hits[i].doc, "definition", analyzer);
然后,当在顶级文档中获取搜索词的最佳片段时,我会执行以下操作:

Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_36);
IndexWriter writer = new IndexWriter(directory,
                    new IndexWriterConfig(Version.LUCENE_36, analyzer));
TokenStream ts = TokenSources.getAnyTokenStream(indexSearcher.getIndexReader(),
                    hits[i].doc, "definition", analyzer);

或者我可以用
新的StandardAnalyzer(Version.LUCENE_36)
替换
analyzer的所有用法吗?我之所以这样问,是因为我的索引和搜索任务在不同的类中,我希望保留通过实例的对象的最小数量。

您肯定可以使用同一分析器/标记器的不同实例


唯一的要求是确保它们在搜索和索引过程中的行为完全相同(例如,应使用相同的对象构造函数,具有相同的数据访问级别等)。

为了完成回答,除了线程安全,我不确定,您还可以将同一analyzer实例重新用于索引和搜索。我相信这是最初的问题。