SOLR7错误解析word文档

Posted

技术标签:

【中文标题】SOLR7错误解析word文档【英文标题】:SOLR7 error parsing word document 【发布时间】:2019-01-20 07:24:12 【问题描述】:

我使用 SOLR7 完全提取 windows doc 文件。我有这个错误:

o.a.s.h.RequestHandlerBase org.apache.poi.poifs.filesystem.NotOLE2FileException:标头签名无效;读取 0x0A1A0A0D474E5089,预期 0xE11AB1A1E011CFD0 - 您的文件似乎不是有效的 OLE2 文档 在 org.apache.poi.poifs.storage.HeaderBlock.(HeaderBlock.java:144) 在 org.apache.poi.poifs.storage.HeaderBlock.(HeaderBlock.java:113) 在 org.apache.poi.poifs.filesystem.NPOIFSFileSystem.(NPOIFSFileSystem.java:301) 在 org.apache.tika.parser.microsoft.OfficeParser.parse(OfficeParser.java:124) 在 org.apache.tika.parser.DelegatingParser.parse(DelegatingParser.java:72) 在 org.apache.tika.extractor.ParsingEmbeddedDocumentExtractor.parseEmbedded(ParsingEmbeddedDocumentExtractor.java:102) 在 org.apache.tika.extractor.EmbeddedDocumentUtil.parseEmbedded(EmbeddedDocumentUtil.java:220) 在 org.apache.tika.parser.microsoft.AbstractPOIFSExtractor.handleEmbeddedResource(AbstractPOIFSExtractor.java:124) 在 org.apache.tika.parser.microsoft.AbstractPOIFSExtractor.handleEmbeddedResource(AbstractPOIFSExtractor.java:100) 在 org.apache.tika.parser.microsoft.WordExtractor.handlePictureCharacterRun(WordExtractor.java:640) 在 org.apache.tika.parser.microsoft.WordExtractor.handleParagraph(WordExtractor.java:372) 在 org.apache.tika.parser.microsoft.WordExtractor.handleHeaderFooter(WordExtractor.java:259) 在 org.apache.tika.parser.microsoft.WordExtractor.parse(WordExtractor.java:182) 在 org.apache.tika.parser.microsoft.OfficeParser.parse(OfficeParser.java:176) 在 org.apache.tika.parser.microsoft.OfficeParser.parse(OfficeParser.java:132) 在 org.apache.solr.handler.extraction.ExtractingDocumentLoader.load(ExtractingDocumentLoader.java:228) 在 org.apache.solr.handler.ContentStreamHandlerBase.handleRequestBody(ContentStreamHandlerBase.java:68) 在 org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:199) 在 org.apache.solr.core.SolrCore.execute(SolrCore.java:2539) 在 org.apache.solr.servlet.HttpSolrCall.execute(HttpSolrCall.java:709) 在 org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:515) 在 org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:377) 在 org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:323) 在 org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1634) 在 org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533) 在 org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146) 在 org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) 在 org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) 在 org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257) 在 org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595) 在 org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255) 在 org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1253) 在 org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203) 在 org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473) 在 org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564) 在 org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201) 在 org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1155) 在 org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144) 在 org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:219) 在 org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:126) 在 org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) 在 org.eclipse.jetty.rewrite.handler.RewriteHandler.handle(RewriteHandler.java:335) 在 org.eclipse.jetty.server.handler.StatisticsHandler.handle(StatisticsHandler.java:169) 在 org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) 在 org.eclipse.jetty.server.Server.handle(Server.java:531) 在 org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:352) 在 org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260) 在 org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:281) 在 org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:102) 在 org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118) 在 org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:760) 在 org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:678) 在 java.lang.Thread.run(Thread.java:748)

2018-08-13 13:50:58.445 错误 (qtp1671846437-23) [c:bdl s:shard1 r:core_node3 x:bdl_shard1_replica_n1] oassHttpSolrCall null:org.apache.poi.poifs.filesystem.NotOLE2FileException: Invalid标头签名;读取 0x0A1A0A0D474E5089,预期 0xE11AB1A1E011CFD0 - 您的文件似乎不是有效的 OLE2 文档 在 org.apache.poi.poifs.storage.HeaderBlock.(HeaderBlock.java:144) 在 org.apache.poi.poifs.storage.HeaderBlock.(HeaderBlock.java:113) 在 org.apache.poi.poifs.filesystem.NPOIFSFileSystem.(NPOIFSFileSystem.java:301) 在 org.apache.tika.parser.microsoft.OfficeParser.parse(OfficeParser.java:124) 在 org.apache.tika.parser.DelegatingParser.parse(DelegatingParser.java:72) 在 org.apache.tika.extractor.ParsingEmbeddedDocumentExtractor.parseEmbedded(ParsingEmbeddedDocumentExtractor.java:102) 在 org.apache.tika.extractor.EmbeddedDocumentUtil.parseEmbedded(EmbeddedDocumentUtil.java:220) 在 org.apache.tika.parser.microsoft.AbstractPOIFSExtractor.handleEmbeddedResource(AbstractPOIFSExtractor.java:124) 在 org.apache.tika.parser.microsoft.AbstractPOIFSExtractor.handleEmbeddedResource(AbstractPOIFSExtractor.java:100) 在 org.apache.tika.parser.microsoft.WordExtractor.handlePictureCharacterRun(WordExtractor.java:640) 在 org.apache.tika.parser.microsoft.WordExtractor.handleParagraph(WordExtractor.java:372) 在 org.apache.tika.parser.microsoft.WordExtractor.handleHeaderFooter(WordExtractor.java:259) 在 org.apache.tika.parser.microsoft.WordExtractor.parse(WordExtractor.java:182) 在 org.apache.tika.parser.microsoft.OfficeParser.parse(OfficeParser.java:176) 在 org.apache.tika.parser.microsoft.OfficeParser.parse(OfficeParser.java:132) 在 org.apache.solr.handler.extraction.ExtractingDocumentLoader.load(ExtractingDocumentLoader.java:228) 在 org.apache.solr.handler.ContentStreamHandlerBase.handleRequestBody(ContentStreamHandlerBase.java:68) 在 org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:199) 在 org.apache.solr.core.SolrCore.execute(SolrCore.java:2539) 在 org.apache.solr.servlet.HttpSolrCall.execute(HttpSolrCall.java:709) 在 org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:515) 在 org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:377) 在 org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:323) 在 org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1634) 在 org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533) 在 org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146) 在 org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) 在 org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) 在 org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257) 在 org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595) 在 org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255) 在 org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1253) 在 org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203) 在 org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473) 在 org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564) 在 org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201) 在 org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1155) 在 org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144) 在 org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:219) 在 org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:126) 在 org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) 在 org.eclipse.jetty.rewrite.handler.RewriteHandler.handle(RewriteHandler.java:335) 在 org.eclipse.jetty.server.handler.StatisticsHandler.handle(StatisticsHandler.java:169) 在 org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) 在 org.eclipse.jetty.server.Server.handle(Server.java:531) 在 org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:352) 在 org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260) 在 org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:281) 在 org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:102) 在 org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118) 在 org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:760) 在 org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:678) 在 java.lang.Thread.run(Thread.java:748)

但是使用 SOLR 5.5 我没有错误,知道吗?

【问题讨论】:

可能是***.com/questions/33879515/…的副本 我根本没有使用 SOLR7 嵌入的库我无法做任何事情,因为它是一个服务器。没有java或其他语言代码.... 【参考方案1】:

当文档中有图片时,问题就来了。检索到图片的标题,POI 期待其他内容....但文档中的标题正常。

read 0x0A1A0A0D474E5089, expected 0xE11AB1A1E011CFD0

期望来自文档的单词标题,另一个是来自图片的标题。如果有其他元素,即使在文档中,解析器也总是等待相同的标题。改变解析器就会成功。

【讨论】:

以上是关于SOLR7错误解析word文档的主要内容,如果未能解决你的问题,请参考以下文章

阅读Microsoft Word文档时出现Android Apache POI错误:org.apache.xmlbeans.SchemaTypeLoaderException无法解析句柄的类型(代码片

怎么找到JDK8的API文档?

求poi API 中文文档 最好是针对于word解析的

nodejs实现一个word文档解析器思路详解

java解析word文档都有哪些方法

请教大神POI解析word文档,如何获取标题前的数字(标题前的数字)。