jprante / elasticsearch-analysis-skos

SKOS analysis for Elasticsearch
Apache License 2.0
54 stars 24 forks source link

Could not initialize class com.hp.hpl.jena.rdf.model.impl.ModelCom #11

Closed porous999 closed 8 years ago

porous999 commented 8 years ago

After compiling and installation of the plugin, when we try to index the example document, the following error is thrown.

P.S.: apache-jena.2.12.1.jar exists in the plugins/skos/ path.

[2016-06-15 11:54:24,838][DEBUG][action.index             ] [Jann] failed to execute [index {[test][subjects][1], source[{
    "title" :  "Spearhead",
    "description": "Roman iron spearhead. The spearhead was attached to one end of a wooden shaft.The spear was mainly a thrusting weapon, but could also be thrown. It was the principal weapon of the auxiliary soldier. (second - fourth century, Arbeia Roman Fort)",
    "subject" : "http://www.ukat.org.uk/thesaurus/concept/859"
}]}] on [[test][3]]
java.lang.NoClassDefFoundError: Could not initialize class com.hp.hpl.jena.rdf.model.impl.ModelCom
    at com.hp.hpl.jena.rdf.model.ModelFactory.createDefaultModel(ModelFactory.java:114)
    at com.hp.hpl.jena.util.FileManager.loadModelWorker(FileManager.java:307)
    at com.hp.hpl.jena.util.FileManager.loadModel(FileManager.java:260)
    at org.xbib.elasticsearch.index.analysis.skos.engine.jena.SKOSEngineImpl.<init>(SKOSEngineImpl.java:147)
    at org.xbib.elasticsearch.index.analysis.skos.engine.SKOSEngineFactory.getSKOSEngine(SKOSEngineFactory.java:70)
    at org.xbib.elasticsearch.index.analysis.skos.SKOSTokenFilterFactory.create(SKOSTokenFilterFactory.java:63)
    at org.elasticsearch.index.analysis.CustomAnalyzer.createComponents(CustomAnalyzer.java:86)
    at org.apache.lucene.analysis.AnalyzerWrapper.createComponents(AnalyzerWrapper.java:101)
    at org.apache.lucene.analysis.AnalyzerWrapper.createComponents(AnalyzerWrapper.java:101)
    at org.apache.lucene.analysis.Analyzer.tokenStream(Analyzer.java:176)
    at org.apache.lucene.document.Field.tokenStream(Field.java:562)
    at org.apache.lucene.index.DefaultIndexingChain$PerField.invert(DefaultIndexingChain.java:628)
    at org.apache.lucene.index.DefaultIndexingChain.processField(DefaultIndexingChain.java:365)
    at org.apache.lucene.index.DefaultIndexingChain.processDocument(DefaultIndexingChain.java:321)
    at org.apache.lucene.index.DocumentsWriterPerThread.updateDocument(DocumentsWriterPerThread.java:234)
    at org.apache.lucene.index.DocumentsWriter.updateDocument(DocumentsWriter.java:450)
    at org.apache.lucene.index.IndexWriter.updateDocument(IndexWriter.java:1477)
    at org.apache.lucene.index.IndexWriter.addDocument(IndexWriter.java:1256)
    at org.elasticsearch.index.engine.InternalEngine.innerIndex(InternalEngine.java:530)
    at org.elasticsearch.index.engine.InternalEngine.index(InternalEngine.java:457)
    at org.elasticsearch.index.shard.IndexShard.index(IndexShard.java:601)
    at org.elasticsearch.index.engine.Engine$Index.execute(Engine.java:836) 
    at org.elasticsearch.action.index.TransportIndexAction.executeIndexRequestOnPrimary(TransportIndexAction.java:237)
    at org.elasticsearch.action.index.TransportIndexAction.shardOperationOnPrimary(TransportIndexAction.java:158)
    at org.elasticsearch.action.index.TransportIndexAction.shardOperationOnPrimary(TransportIndexAction.java:66)
    at org.elasticsearch.action.support.replication.TransportReplicationAction$PrimaryPhase.doRun(TransportReplicationAction.java:639)
    at org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:37)
    at org.elasticsearch.action.support.replication.TransportReplicationAction$PrimaryOperationTransportHandler.messageReceived(TransportReplicationAction.java:279)
    at org.elasticsearch.action.support.replication.TransportReplicationAction$PrimaryOperationTransportHandler.messageReceived(TransportReplicationAction.java:271)
    at org.elasticsearch.transport.RequestHandlerRegistry.processMessageReceived(RequestHandlerRegistry.java:75)
    at org.elasticsearch.transport.TransportService$4.doRun(TransportService.java:376)
    at org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:37)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
porous999 commented 8 years ago

The issue is not coming once I started using the indexing script mentioned in https://gist.github.com/jprante/7551124

jprante commented 8 years ago

Do you have all the libraries of elasticsearch-analysis-skos-2.3.0.0-plugin.zip in the skos plugin directory?

What version of Elasticsearch is this?

jprante commented 8 years ago

https://gist.github.com/jprante/7551124 is very old. It's a surprise to me it works.

porous999 commented 8 years ago

This is ES-2.3.0, and yes all the libs are/were present. The difference I could see was "index_analyzer" : "skos", was missing in my mapping part. I believe that did the trick.

porous999 commented 8 years ago

In the example given by you, in the mapping portion "analyzer" : "skos", does not help, I have just tried it out.

porous999 commented 8 years ago

Just noticed, using that index_analyzer, it doesn't recognize it.

{"error":{"root_cause":[{"type":"mapper_parsing_exception","reason":"Mapping definition for [subject] has unsupported parameters:  [index_analyzer : skos]"}],"type":"mapper_parsing_exception","reason":"Failed to parse mapping [_default_]: Mapping definition for [subject] has unsupported parameters:  [index_analyzer : skos]","caused_by":{"type":"mapper_parsing_exception","reason":"Mapping definition for [subject] has unsupported parameters:  [index_analyzer : skos]"}},"status":400}{"_index":"test","_type":"subjects","_id":"1","_version":1,"_shards":{"total":2,"successful":1,"failed":0},"created":true}
jprante commented 8 years ago

Thanks, I need time to investigate.

jprante commented 8 years ago

You have to disable the ES security manager for this SKOS analysis plugin, it prevents Jena from working.

./bin/elasticsearch -Des.security.manager.enabled=false

jprante commented 8 years ago

I have added a note in the README. A new release is out, compatible to Elasticsearch 2.3.3

porous999 commented 8 years ago

Thanks. That solved it!