我想用Lucene对一个529G大小的PDF文件进行索引,开始使用Tika1.5,异常为:
TIKA-198: Illegal IOException from org.apache.tika.parser.pdf.PDFParser@1455935
org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:248)
org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:242)
org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:120)
com.cc.file.Office2007FileConverter.getContents(Office2007FileConverter.java:38)
test.PDFTest.testEnPDF5(PDFTest.java:58)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
java.lang.reflect.Method.invoke(Unknown Source)
junit.framework.TestCase.runTest(TestCase.java:168)
然后又试用了PDFbox1.8.4,异常如下:
Exception in thread "main" org.apache.pdfbox.exceptions.WrappedIOException
at org.apache.pdfbox.pdfparser.PDFParser.parse(PDFParser.java:263)
at org.apache.pdfbox.pdmodel.PDDocument.load(PDDocument.java:1219)
at org.apache.pdfbox.pdmodel.PDDocument.load(PDDocument.java:1186)
at org.apache.pdfbox.pdmodel.PDDocument.load(PDDocument.java:1111)
at com.cc.test.BigPDFTest.main(BigPDFTest.java:16)
Caused by: java.lang.IndexOutOfBoundsException: Index: 13, Size: 13
at java.util.ArrayList.rangeCheck(Unknown Source)
at java.util.ArrayList.get(Unknown Source)
at org.apache.pdfbox.io.RandomAccessBuffer.seek(RandomAccessBuffer.java:109)
at org.apache.pdfbox.io.RandomAccessFileOutputStream.write(RandomAccessFileOutputStream.java:106)
at java.io.BufferedOutputStream.flushBuffer(Unknown Source)
at java.io.BufferedOutputStream.flush(Unknown Source)
at java.io.FilterOutputStream.close(Unknown Source)
at org.apache.pdfbox.pdfparser.BaseParser.parseCOSStream(BaseParser.java:618)
at org.apache.pdfbox.pdfparser.PDFParser.parseObject(PDFParser.java:605)
at org.apache.pdfbox.pdfparser.PDFParser.parse(PDFParser.java:194)
... 4 more
请教各位高人,如何parse这么大的PDF文件?多谢!!
相关推荐
iTextPDFExtractor.java ------ ...--PDFBox创建PDF文件的Lucene索引 PDFBoxPathIndex.java ------- --PDFBox创建指定目录PDF文档索引 POIOfficeExtractor.java ----- -- POI处理Excel和Word文档代码
以上就是关于“Lucene索引的简单使用”的详细介绍,包括其核心概念、创建和查询索引的步骤以及一些高级特性。希望对你理解和应用Lucene有所帮助。在实际开发中,可以根据需求选择合适的Analyzer,优化索引策略,以...
在索引过程中,需要将PDF文件的元数据(如文件名、路径等)一并保存,以便后续搜索时提供更多的上下文信息。 搜索阶段,用户输入查询后,`Analyzer`会再次处理查询字符串,生成查询项。`IndexSearcher`负责执行查询...
标题与描述概述的知识点主要围绕着Lucene索引的核心概念,包括索引的基本定义、反向索引(倒排索引)的工作原理以及Lucene如何实现其独特的索引文件格式。下面将对这些知识点进行详细阐述。 ### 索引概念 索引是一...
通过xpdf,可以从Pdf文件中准确地抽取文本内容,使其能够被Lucene索引和检索。具体步骤如下: 1. **下载并安装xpdf**: 首先,从官方网站http://www.foolabs.com/xpdf/ 下载xpdf工具包,并按照指南完成安装。 2. **...
通过运行`org.apache.lucene.demo.IndexFiles`类的main方法可以完成对指定目录下文件的索引操作,索引文件通常会被保存在一个名为“index”的文件夹中。 而执行查询则是通过运行`org.apache.lucene.demo.Search...
Lucene学习总结之四:Lucene索引过程分析(1) Lucene学习总结之四:Lucene索引过程分析(2) Lucene学习总结之四:Lucene索引过程分析(3) Lucene学习总结之四:Lucene索引过程分析(4) www.chinaandroid.com
lucene索引入门 Lucene 是一个基于 Java 的全文搜索引擎库,提供了一个简单、灵活、可扩展的搜索解决方案。Lucene 的核心组件包括索引模块、检索模块、语言分析器、查询分析器、存储结构等。 1. 索引模块(Index)...
而对于PDF文件,Apache PDFBox库被用于解析PDF文档,`PDFParser` 和 `PDFTextStripper` 类组合在一起可以从PDF中抽取文本。 以下是一般的步骤来实现全文检索功能: 1. **初始化**: 创建 `Directory` 对象和 `...
二、Lucene索引创建流程 1. 初始化:首先,我们需要导入Lucene库,并创建一个标准的Analyzer,例如StandardAnalyzer,它对输入的文本进行标准化处理。 2. 创建索引目录:索引数据会存储在一个Directory对象中,...
通过以上步骤,我们可以构建一个功能强大的文件检索系统,支持多种文件类型,满足用户对doc、xls、ppt、txt和pdf文件的快速查找需求。在实际项目中,可以根据具体需求进行调整和扩展,如增加对其他文件类型的处理、...
《深入理解Lucene索引建立过程》 Lucene作为一个强大的全文搜索引擎库,其核心功能在于高效地建立和查询索引。本文将详细解析Lucene如何将各种类型的数据组织成索引,以及索引创建的具体步骤。 首先,我们要理解...
1. **跨平台索引文件格式**:Lucene采用基于8位字节的索引文件格式,确保不同系统和平台之间的兼容性,允许共享索引文件。 2. **分块索引**:Lucene在传统的倒排索引基础上实现了分块索引,可以快速为新文件建立...
第四部分聚焦于Lucene索引构建逻辑模块的分析,详细阐述了索引构建的流程,包括对象体系的UML图,展示了Lucene内部如何处理文档、字段和术语,以及如何通过一系列步骤将这些信息转化为可搜索的索引结构。 总体而言...
为了解决这一问题,研究者们深入分析和研究了Lucene的索引机制,并提出了基于内存缓冲区建立索引文件的分布式并行索引技术,这是一种可扩展的搜索引擎解决方案。通过这种技术,可以在多台机器上分布式地建立索引,并...
压缩包内的文件“一种修改Lucene索引文件中词的方法及装置.pdf”很可能是详细的技术文档,包含了具体的操作流程、算法描述以及可能的实现代码示例。通过阅读这份文档,可以获取更深入的理解,并可能应用于实际的搜索...
在Lucene 3.6中,这一过程被优化,使得对大量文件的索引构建更为高效。 要开始使用Lucene进行文件检索,你需要指定两个关键目录:检索目录和索引目录。检索目录包含了需要被搜索的文件,而索引目录则用于存储生成的...
根据提供的信息,“Lucene实战中文版第2版.pdf”似乎是一本关于Apache Lucene的实践指南书籍。由于具体内容部分没有提供实际的章节或段落文本,我们只能基于标题、描述和标签来推断这本书可能涉及的关键知识点。下面...
#### Lucene索引过程分析 - **创建IndexWriter对象**:负责管理索引的写入操作。 - **创建文档Document对象**:封装文档内容。 - **将文档加入IndexWriter**:提交文档到索引中。 - **索引缓存管理**:管理各种缓存...