java - Elasticsearch y luke
lucene (3)
No lo he probado con ninguna otra versión, pero parece funcionar con luke 4.9 y elasticsearch versión 1.3.1 (ElasticSearch 1.3.x usa Lucene 4.9 debajo)
En la línea de comando haz:
git clone https://github.com/DmitryKey/luke.git
o simplemente descargue el código fuente para la versión de luke-4.9.0. A continuación, edite el archivo pom.xml y agregue la siguiente dependencia:
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>1.3.1</version>
</dependency>
En la línea de comando nuevamente hazlo:
cd luke
mvn install
Esto debería crear un directorio de destino con un archivo llamado luke-with-deps.jar . Abra este archivo en cualquier administrador de archivos y edite el archivo META-INF / services / org.apache.lucene.codecs.PostingsFormat como se describe en http://rosssimpson.com/blog/2014/05/06/using-luke-with -elasticsearch / y agregue las siguientes líneas
org.elasticsearch.index.codec.postingsformat.BloomFilterPostingsFormat
org.elasticsearch.index.codec.postingsformat.Elasticsearch090PostingsFormat
org.elasticsearch.search.suggest.completion.Completion090PostingsFormat
guarda esto y deberías poder ejecutar luke usando luke.bat o luke.sh. Ahora puede abrir el índice en / indexname / 0 / index / por ejemplo. Si tiene varios fragmentos en su clúster elasticsearch (el valor predeterminado es 5), es posible que no vea todos los documentos en ese clúster, sino solo una parte. Solo si index.number_of_shards está establecido en 1, debería poder ver todos los documentos.
¿Cómo puedo abrir un índice elasticsearch con luke?
Intenté con Luke de 3.5 a 4.8, con elasticsearch 1.1 a 1.2 y nada parece funcionar.
El único recurso que parecía aplicarse era http://rosssimpson.com/blog/2014/05/06/using-luke-with-elasticsearch/ que desafortunadamente no funcionó.
He logrado abrir un índice con ElasticSearch 1.3.4 (que usa Lucene 4.9.1 bajo el capó). Yo también seguí las instrucciones en el blog de Ross Simpson , pero no funcionó. Como él dice, agregué la dependencia ElasticSearch (en mi caso, la versión 1.3.4) en pom.xml
:
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>1.3.4</version>
</dependency>
Y también configure la versión de Lucene (en mi caso 4.9.1) en pom.xml
:
<lucene.version>4.9.1</lucene.version>
META-INF/services/org.apache.lucene.codecs.PostingsFormat
en el META-INF/services/org.apache.lucene.codecs.PostingsFormat
de la siguiente manera:
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
Hasta ahora, las instrucciones son las mismas que en la publicación del blog. El paso adicional que tomé fue actualizar META-INF/services/org.apache.lucene.codecs.Codec
agregar la última línea (recibí una excepción al abrir el índice que no se encontró un códec llamado Lucene49):
org.apache.lucene.codecs.simpletext.SimpleTextCodec
org.apache.lucene.codecs.appending.AppendingCodec
org.apache.lucene.codecs.lucene49.Lucene49Codec
Luke es compatible con elasticsearch 1.5.0 ahora: https://github.com/DmitryKey/luke (compilación desde el maestro o use https://github.com/DmitryKey/luke/releases/tag/luke-4.10.4-field-reconstruction )