इंडेक्स करने का प्रयास करते समय Elasticsearch Parse अपवाद त्रुटि मैं elasticsearch के साथ शुरू कर रहा हूँ। हमारी आवश्यकता के लिए हमें हजारों पीडीएफ फाइलों को अनुक्रमणित करने की आवश्यकता है और मुझे सफलतापूर्वक इंडेक्स करने के लिए उनमें से केवल एक प्राप्त करने में कठिनाई हो रही है।इंडेक्स पीडीएफ
अटैचमेंट प्रकार प्लगइन स्थापित किया गया और प्रतिक्रिया मिली: Installed mapper-attachments
।
Attachment Type in Action tutorial का पालन किया लेकिन प्रक्रिया लटकती है और मुझे नहीं पता कि त्रुटि संदेश की व्याख्या कैसे करें। gist भी कोशिश की जो एक ही स्थान पर लटका हुआ है।
$ 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}
अधिक विवरण:
json.file
एक एम्बेडेड Base64 पीडीएफ फाइल (निर्देशों के अनुसार) शामिल हैं। फ़ाइल की पहली पंक्ति सही प्रतीत होता है (मेरे लिए वैसे भी): {"file":"JVBERi0xLjQNJeLjz9MNCjE1OCAwIG9iaiA8
...
मुझे यकीन है कि अगर शायद json.file
अवैध या अगर शायद elasticsearch सिर्फ पीडीएफ़ ठीक से पार्स करने के लिए सेट नहीं है है नहीं कर रहा हूँ? !?
एन्कोडिंग - यहाँ हम कैसे json.file
में पीडीएफ एन्कोडिंग रहे हैं (प्रति ट्यूटोरियल के रूप में) है:
coded=`cat fn6742.pdf | perl -MMIME::Base64 -ne 'print encode_base64($_)'`
json="{\"file\":\"${coded}\"}"
echo "$json" > json.file
भी करने की कोशिश की:
coded=`openssl base64 -in fn6742.pdf
लॉग:
[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)
किसी की उम्मीद है कि मुझे यह देखने में मदद मिल सकती है कि मैं क्या खो रहा हूं या गलत किया?
आह, आप सही हैं! आपकी सहायताके लिए धन्यवाद! लेकिन, अब मैंने फ़ाइल नाम के सामने '@' जोड़ने का प्रयास किया है और यह सिर्फ लॉग आउटपुट के साथ लटकता है?! मुझे अपना खोल वापस पाने के लिए * ctrl-c * की आवश्यकता है। कोई विचार? शायद लॉग को और अधिक सहायक बनाने का एक तरीका? – Meltemi
क्या आप jstack चला सकते हैं और देख सकते हैं कि यह कहां लटका है? – imotov
मुझे भी यही गलती थी। धन्यवाद! – ssoto