当前位置: 首页 > 面试题库 >

尝试为PDF编制索引时出现Elasticsearch Parse Exception错误

鞠通
2023-03-14
问题内容

我刚开始使用Elasticsearch。我们的要求是我们需要索引成千上万个PDF文件,而我很难让其中一个成功地索引。

安装了附件类型插件并获得响应:Installed mapper-attachments

遵循了“操作中的附件类型”教程,但是该过程挂起,并且 我不知道如何解释错误消息
。还尝试了悬挂在同一个地方的要点。

$ 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文件(按说明)。该文件的第一行 似乎
正确(无论如何对我来说):{"file":"JVBERi0xLjQNJeLjz9MNCjE1OCAwIG9iaiA8

我不确定可能json.file无效,或者elasticsearch是否未正确解析PDF?!?

编码 -这是我们将PDF编码成的方式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)

希望有人可以帮助我看看我缺少或做错了什么吗?


问题答案:

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

Failed to derive xcontent from (offset=0, length=9): [106, 115, 111, 110, 46, 102, 105, 108, 101]

UTF-8代码[106、115、111,…]显示您正在尝试索引字符串“ json.file”而不是文件内容。

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

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


 类似资料:
  • 我在Windows 7中使用Python 3.4和Pygame为我的小儿子创建了一个小游戏。它也适用于Python 2。十、 有一些小错误。然后我尝试创建一个。使用py2exe的exe文件。我准备了一个设置。py文件复制我在pygame2exe wiki上找到的源(http://www.pygame.org/wiki/Pygame2exe?parent=CookBook)还尝试使用我在这里和pyt

  • 我试图为hibernate OGM mongo DB应用程序添加hibernate搜索支持。当我尝试使用行重新生成索引时,经常会出现以下异常。 HSearch000058:HSearch000116:MassIndexer操作过程中出现意外错误java.lang.NosuchMethoderror:org.hibernate.search.engine.spi.documentBuilderInd

  • 我正在设置使用“Grails dev run-app”命令从我的终端运行graddle,然后出现了一个错误。 我不确定是什么导致了这个错误,但是我安装的是: null 正在运行应用程序...OBJC[3493]:类JavaLaunchHelper在/library/java/javaVirtualMachines/jdk1.8.0_111.jdk/contents/home/bin/java和/l

  • 我有以下代码: 这工作正常,直到我这样做(试图设置列'idx'作为索引的数据帧) 这会引发一个错误 这是什么意思?

  • 有人能识别出以下代码的错误吗。特别是第一条dbms_输出线。第二张打印得很好。但第一个错误是: 第2行ORA-06550错误:第15行,第53列:PLS-00201:标识符“MYCOLL”必须声明ORA-06550:第15行,第1列:PL/SQL:忽略语句

  • 问题内容: 我在列中有以下股票数据集,在行的日期下方(使用彭博(Bloomberg)的Python API下载-请忽略以下事实:它们全都是“ NaN”-仅用于数据的这一部分): 我正在尝试从索引中提取月份和年份,以便稍后进行调整: 其中values是上述DataFrame的名称。 但这会产生错误:’KeyError’date’ 运行: 看起来不错: 所以我只是想知道问题出在哪里,为什么我似乎无法在