elasticsearch,apache-tika,osx-server,Pdf,Base64,elasticsearch,Apache Tika,Osx Server" /> elasticsearch,apache-tika,osx-server,Pdf,Base64,elasticsearch,Apache Tika,Osx Server" />

尝试为PDF编制索引时出现Elasticsearch分析异常错误

尝试为PDF编制索引时出现Elasticsearch分析异常错误,pdf,base64,elasticsearch,apache-tika,osx-server,Pdf,Base64,elasticsearch,Apache Tika,Osx Server,我刚开始学习elasticsearch。我们的要求使我们需要索引数千个PDF文件,而我很难让其中一个文件成功索引 安装了附件类型插件并得到响应:已安装映射器附件 遵循了,但进程挂起,我不知道如何解释错误消息。也试过挂在同一个地方的 $ curl -X POST "localhost:9200/test/attachment/" -d json.file {"error":"ElasticSearchParseException[Failed to derive xcontent from (o

我刚开始学习elasticsearch。我们的要求使我们需要索引数千个PDF文件,而我很难让其中一个文件成功索引

安装了附件类型插件并得到响应:
已安装映射器附件

遵循了,但进程挂起,我不知道如何解释错误消息。也试过挂在同一个地方的

$ 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 PDF文件(按照说明)。文件的第一行看起来是正确的(对我来说):
{“文件”:“jvberi0xljqnjeljz9mncje1ocawig9ia8

我不确定是
json.file
无效,还是elasticsearch没有设置为正确解析PDF

编码-以下是我们如何将PDF编码为
json.file
(根据教程):

还尝试:

coded=`openssl base64 -in fn6742.pdf
日志:


希望有人能帮我看看我遗漏了什么或做错了什么?

以下错误指出了问题的根源

Failed to derive xcontent from (offset=0, length=9): [106, 115, 111, 110, 46, 102, 105, 108, 101]
UTF-8代码[106115111,…]表明您试图索引字符串“json.file”,而不是文件的内容

要索引文件内容,只需在文件名前面添加字母“@”

curl -X POST "localhost:9200/test/attachment/" -d @json.file

事实证明,在“无头”服务器上运行JAVA应用程序之前,有必要导出ES_JAVA_OPTS=-Djava.awt.headless=true,谁会想到!?!

啊,你是对的!谢谢你的帮助!但是,现在我尝试在文件名前面添加
@
,它只是挂起,没有输出到日志中?!我需要ctrl-C来获取我的外壳回来了。有什么想法吗?也许是一种让日志更有用的方法吗?你能运行jstack并看看它挂在哪里吗?我也犯了同样的错误。谢谢!大海捞针!值得注意的是,这只会消除错误。@imotov的答案可能是这个问题的正确答案。
未能派生xcontent
错误的另一个原因当一个空的有效载荷传递到弹性体中时将弹出。
Failed to derive xcontent from (offset=0, length=9): [106, 115, 111, 110, 46, 102, 105, 108, 101]
curl -X POST "localhost:9200/test/attachment/" -d @json.file