我已成功打开 ElasticSearch 1.3.4 的索引(它使用 Lucene 4.9.1 引擎盖)。我也按照Ross Simpson's blog 中的说明进行操作,但没有奏效。正如他所说,我在pom.xml 中添加了 ElasticSearch 依赖项(在我的情况下为 1.3.4 版):
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>1.3.4</version>
</dependency>
并且还在pom.xml中设置Lucene版本(在我的例子中是4.9.1):
<lucene.version>4.9.1</lucene.version>
我将 jar 中的META-INF/services/org.apache.lucene.codecs.PostingsFormat 更新如下:
org.apache.lucene.codecs.lucene40.Lucene40PostingsFormat
org.apache.lucene.codecs.lucene41.Lucene41PostingsFormat
org.elasticsearch.index.codec.postingsformat.BloomFilterPostingsFormat
org.elasticsearch.index.codec.postingsformat.Elasticsearch090PostingsFormat
org.elasticsearch.search.suggest.completion.Completion090PostingsFormat
到目前为止,说明与博客文章中的说明相同。我采取的额外步骤是更新META-INF/services/org.apache.lucene.codecs.Codec 添加最后一行(打开索引时出现异常,未找到名为 Lucene49 的编解码器):
org.apache.lucene.codecs.simpletext.SimpleTextCodec
org.apache.lucene.codecs.appending.AppendingCodec
org.apache.lucene.codecs.lucene49.Lucene49Codec