Sadece elasticsearch ile çalışmaya başladım. İhtiyacımız olan binlerce PDF dosyasını dizine eklememize gerek duyuyor ve sadece bir tanesini başarılı bir şekilde indekslemek için zor bir zaman geçiriyorum.Elasticsearch Parse PDF'yi endekslemeye çalışırken istisna hatası
Eklenti Türü eklentisini yükledi ve yanıt alındı: Installed mapper-attachments
.
Attachment Type in Action tutorial izlenir, ancak işlem askıda kalıyor ve Hata iletisini nasıl yorumlayacağımı bilmiyorum. Aynı yerde asılı kalan gist'u da denedi.
$ 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}
Diğer ayrıntılar:
json.file
(talimatlara göre) gömülü Base64 PDF dosyasını içerir. dosyanın ilk satırı (bana zaten) doğru görünür: {"file":"JVBERi0xLjQNJeLjz9MNCjE1OCAwIG9iaiA8
...
belki json.file
geçersiz ya da belki elasticsearch eğer sadece düzgün PDF'leri ayrıştırmak için ayarlanmamış olup olmadığından emin değilim? !?
Kodlama - İşte (öğretici göre) json.file
içine PDF kodlayan ediyoruz edebilirsiniz: ayrıca denenmiş
coded=`cat fn6742.pdf | perl -MMIME::Base64 -ne 'print encode_base64($_)'`
json="{\"file\":\"${coded}\"}"
echo "$json" > json.file
:
coded=`openssl base64 -in fn6742.pdf
günlüğü:
[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)
Birini umursamıyorum neyi kaçırdığımı veya yanlış yaptığımı görmeme yardım edebilir mi?
Ah, siz haklısınız! Yardım ettiğin için teşekkür ederim! Ama şimdi '' 'dosya ismini önüne eklemeyi denedim ve günlüğüne hiçbir çıkış yapmadan mı kalıyor? Kabuğumu geri almak için * ctrl-C * 'ye ihtiyacım var. Herhangi bir fikir? Belki günlükleri daha faydalı hale getirmenin bir yolu olabilir mi? – Meltemi
jstack'i çalıştırabilir ve nerede kilitlendiğini görebilir misiniz? – imotov
Aynı hatayı aldım. Teşekkür ederim! – ssoto