Ich beginne gerade mit elasticsearch. Unsere Anforderung besteht darin, dass wir Tausende von PDF-Dateien indexieren müssen, und es fällt mir schwer, nur EINE von ihnen zum erfolgreichen Indexieren zu erhalten.Elasticsearch Parse Ausnahmefehler beim Versuch, PDF zu indexieren
Installierte das Attachment Type Plugin und bekam Antwort: Installed mapper-attachments
.
Gefolgt der Attachment Type in Action tutorial aber der Prozess hängt und Ich weiß nicht, wie die Fehlermeldung zu interpretieren. Probieren Sie auch die gist, die an der gleichen Stelle hängt.
$ curl -X POST "localhost:9200/test/attachment/" -d json.file
{"error":"ElasticSearchParseException[Failed to derive xcontent from (offset=0, length=9): [106, 115, 111, 110, 46, 102, 105, 108, 101]]","status":400}
Weitere Details:
Die json.file
enthält eine eingebettete Base64 PDF-Datei (gemäß Anweisungen). Die erste Zeile der Datei erscheint korrekt ist (für mich jedenfalls): {"file":"JVBERi0xLjQNJeLjz9MNCjE1OCAwIG9iaiA8
...
Ich bin mir nicht sicher, ob vielleicht die json.file
ungültig ist oder vielleicht, wenn Elasticsearch ist einfach nicht eingerichtet PDFs richtig zu analysieren? !?
Encoding - Hier ist, wie wir die PDF in json.file
sind kodiert (per Tutorial):
coded=`cat fn6742.pdf | perl -MMIME::Base64 -ne 'print encode_base64($_)'`
json="{\"file\":\"${coded}\"}"
echo "$json" > json.file
auch versucht:
coded=`openssl base64 -in fn6742.pdf
log:
[2012-06-07 12:32:16,742][DEBUG][action.index ] [Bailey, Paul] [test][0], node[AHLHFKBWSsuPnTIRVhNcuw], [P], s[STARTED]: Failed to execute [index {[test][attachment][DauMB-vtTIaYGyKD4P8Y_w], source[json.file]}]
org.elasticsearch.ElasticSearchParseException: Failed to derive xcontent from (offset=0, length=9): [106, 115, 111, 110, 46, 102, 105, 108, 101]
at org.elasticsearch.common.xcontent.XContentFactory.xContent(XContentFactory.java:147)
at org.elasticsearch.common.xcontent.XContentHelper.createParser(XContentHelper.java:50)
at org.elasticsearch.index.mapper.DocumentMapper.parse(DocumentMapper.java:451)
at org.elasticsearch.index.mapper.DocumentMapper.parse(DocumentMapper.java:437)
at org.elasticsearch.index.shard.service.InternalIndexShard.prepareCreate(InternalIndexShard.java:290)
at org.elasticsearch.action.index.TransportIndexAction.shardOperationOnPrimary(TransportIndexAction.java:210)
at org.elasticsearch.action.support.replication.TransportShardReplicationOperationAction$AsyncShardOperationAction.performOnPrimary(TransportShardReplicationOperationAction.java:532)
at org.elasticsearch.action.support.replication.TransportShardReplicationOperationAction$AsyncShardOperationAction$1.run(TransportShardReplicationOperationAction.java:430)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:680)
Hoffe jemand kann mir helfen zu sehen, was ich vermisse oder falsch gemacht habe?
Ah, Sie haben Recht! Danke für Ihre Hilfe! Aber, jetzt habe ich versucht, das '@' vor dem Dateinamen hinzuzufügen und es hängt nur ohne Ausgabe an das Protokoll?!? Ich muss * Ctrl-C * um meine Shell zurück zu bekommen. Irgendwelche Ideen? Vielleicht eine Möglichkeit, Log hilfreicher zu machen? – Meltemi
Können Sie Jstack ausführen und sehen, wo es hängt? – imotov
Ich hatte den gleichen Fehler. Vielen Dank! – ssoto