由于Elasticsearch的倒排索引经过改造并非直接使用Lucene的机制,所以Luke默认是无法打开分片下的索引内容的,这个时候需要我们自己编译了。
版本一定要对应,请自行对比自己的Elasticsearch版本与内部lucene的版本,由于我使用的是 ES 2.4.5 内部使用的是 Lucene 5.5.4 所以我就直接下载的 luke 5.5.5 进行源码编译的。
https://github.com/DmitryKey/luke/tags
主要修改POM文件的两处位置就可以了,第一处就是Elasticsearch的版本,第二处就是放开elasticsearch注释那一块打包编译即可。
<elasticsearch.version>2.4.5elasticsearch.version>
<dependency>
<groupId>org.elasticsearchgroupId>
<artifactId>elasticsearchartifactId>
<version>${elasticsearch.version}version>
dependency>
mvn package
通过以下方式运行后,然后选择某个分片下的索引打开即可。
java -jar ${sourcepath}/target/luke-with-deps.jar
具体如何查看使用Luke我就不赘述了,我测试发现多个分片目录不能同时打开,有点不太方便,因为毕竟ES默认创建的索引是5个分片与1个副本(共10分片),所以比较麻烦,只能一个个去打开着看了,如上述有啥子问题请留言,谢谢!