Cannot opening index with Luke


(Kim Laplume) #1

Hi,

I'm trying to inspect some ES indices with an updated Luke repo

I can compile and start Luke, with
java -jar lukeall-4.5.1.jar
but when I try to open an index I get the following error message:
A SPI class of type org.apache.lucene.codecs.PostingsFormat with name
'es090' does not exist. You need to add the corresponding JAR file
supporting this SPI to your classpath.The current classpath supports the
following names: [Lucene40, Lucene41]

Does anyone know what might be causes the error? I tried to add the
lucene-codecs-4.4.0.jar and the elasticsearch-0.90.5.jar to the classpath
and also compile them in the lukeall-jar, but the exception is still the
same.

I would appreciate any help or comment.

Best Regards,
Kim

--
You received this message because you are subscribed to the Google Groups "elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email to elasticsearch+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


(Jörg Prante) #2

ES uses a posting format "es090" which has to be declared in the
properties, you have to modify the Luke jar and provide an SPI class.

With the skywalker project, I also try to inspect ES Lucene indices, you
can try it if you want. I do not inspect postings format yet...

Jörg

--
You received this message because you are subscribed to the Google Groups "elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email to elasticsearch+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


(Kim Laplume) #3

Thanks for the reply Jörg,

Skywalker certainly looks interesting, but I need to inspect an index that
I have on the file system, that is not in a running ES cluster. I can try
to start a node and somehow make it use the index in question, but I guess
it will not work. Do you have some experience with indices that are copied
over to a different cluster?

On Thursday, November 14, 2013 7:37:32 PM UTC+1, Jörg Prante wrote:

ES uses a posting format "es090" which has to be declared in the
properties, you have to modify the Luke jar and provide an SPI class.

With the skywalker project, I also try to inspect ES Lucene indices, you
can try it if you want. I do not inspect postings format yet...

https://github.com/jprante/elasticsearch-skywalker

Jörg

--
You received this message because you are subscribed to the Google Groups "elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email to elasticsearch+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


(Jörg Prante) #4

OK, I see. Maybe I should prepare a standalone skywalker jar for that
purpose.

Yes, you should be able to move a shard over the file system, it should be
picked up as a shard by the target cluster. Better is to move all the
shards of an index to the target to keep the index structure intact
(shards, replica).

The file system copy of a part of the cluster is not guaranteed to work for
different cluster versions though, it may work or not. I suggest moving the
whole "data" folder is a safer way, also to copy the cluster state.

Jörg

--
You received this message because you are subscribed to the Google Groups "elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email to elasticsearch+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


(Kim Laplume) #5

For those who are interested, I managed to open an ES index with the luke
version from the repo I mentioned in the opening post. I did the following:
-included the ES jar in the lib folder of luke
-added an entry for it to be compiled in the jar (under target compile in
the ant script I added:



-ran ant dist
-uncompressed lukeall-4.5.1.jar
-added the following entry to the file
META-INF/services/org.apache.lucene.codecs.RostingsFormat:

org.elasticsearch.index.codec.postingsformat.ElasticSearch090PostingsFormat
-compressed the folder again to lukeall-ES_PATCHED-4.5.1.jar
-ran java -jar lukeall-ES_PATCHED-4.5.1.jar
-profit!

On Friday, November 15, 2013 9:05:15 AM UTC+1, Jörg Prante wrote:

OK, I see. Maybe I should prepare a standalone skywalker jar for that
purpose.

Yes, you should be able to move a shard over the file system, it should be
picked up as a shard by the target cluster. Better is to move all the
shards of an index to the target to keep the index structure intact
(shards, replica).

The file system copy of a part of the cluster is not guaranteed to work
for different cluster versions though, it may work or not. I suggest moving
the whole "data" folder is a safer way, also to copy the cluster state.

Jörg

--
You received this message because you are subscribed to the Google Groups "elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email to elasticsearch+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


(bdelbosc) #6

Thanks Kim,

Just to update the procedure for elasticsearch 1.0.1 and latest luke-4.7.0

  1. Get the luke from github.com:tarzanek/luke.git
    git clone git@github.com:tarzanek/luke.git

  2. Edit the build.xml to add


  3. Get lucene 4.7.0 tgz archive and extract lucene-suggest-4.7.0.jar to the
    luke lib directory

  4. Copy the elasticsearch-1.0.1.jar to the luke lib directory

  5. Build with ant dist

  6. Edit dist/lukeall-4.7.0.jar with vi and then edit the following file
    META-INF/services/org.apache.lucene.codecs.PostingsFormat

Then add the following lines and save :
org.elasticsearch.index.codec.postingsformat.BloomFilterPostingsFormat
org.elasticsearch.index.codec.postingsformat.Elasticsearch090PostingsFormat
org.elasticsearch.search.suggest.completion.Completion090PostingsFormat

ben

--
You received this message because you are subscribed to the Google Groups "elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email to elasticsearch+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/81909f57-3110-4eea-8490-56c169746cae%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


(system) #7