從 PDF Java 提取文字:使用 GroupDocs.Search 建立文件索引
在本實作指南中,您將了解 如何從 PDF Java 應用程式提取文字,並將這些原始內容轉換為快速、全文可搜尋的索引。無論您是要建置內部知識庫、合約搜尋入口網站,或是自訂搜尋引擎,以下步驟都會帶您從 PDF 取出文字、序列化資料、建立索引,最後執行查詢。讓我們一起看看 GroupDocs.Search 如何讓整個流程順暢且具擴充性。
快速回答
- 主要目的為何? 從 PDF Java 檔案提取文字,並使用 GroupDocs.Search 建立可搜尋的文件索引。
- 使用哪個程式庫版本? GroupDocs.Search 25.4(或最新發行版)。
- 需要授權嗎? 開發階段可使用免費試用版;正式上線需購買正式授權。
- 可以索引 PDF 嗎? 可以——提取 PDF 文字後加入索引。
- 如何執行搜尋? 在加入資料後使用
index.search(query)方法。
什麼是文件索引?
文件索引是從您的檔案中抽取出的可搜尋詞彙的結構化集合。透過建立文件索引,您可以在大型資料庫中快速執行全文搜尋,顯著提升檢索速度與準確度。
為何在 Java 中使用 GroupDocs.Search?
- 強韌的抽取功能 – 支援 PDF、Word、Excel 等多種格式。
- 簡易的序列化 – 可將抽取的資料儲存為位元組陣列,以便日後重複使用。
- 可擴充的索引 – 能高效索引百萬文件。
- 功能強大的查詢語言 – 支援複雜的全文搜尋 Java 查詢。
前置條件
- GroupDocs.Search for Java(版本 25.4 或更新)。
- Java Development Kit (JDK),需與您的 GroupDocs 版本相容。
- 如 IntelliJ IDEA 或 Eclipse 等 IDE。
- 用於相依管理的 Maven。
設定 GroupDocs.Search for Java
首先,將程式庫加入您的專案。
Maven 設定
在 pom.xml 檔案中加入以下內容:
<repositories>
<repository>
<id>repository.groupdocs.com</id>
<name>GroupDocs Repository</name>
<url>https://releases.groupdocs.com/search/java/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-search</artifactId>
<version>25.4</version>
</dependency>
</dependencies>
直接下載
或是從 GroupDocs.Search for Java releases 下載最新版本。
取得授權
- 免費試用 – 使用臨時授權測試所有功能。
- 購買授權 – 獲得完整功能與優先支援。
步驟式實作
如何從 PDF(及其他文件)提取文字
抽取原始或格式化文字是建立文件索引的第一步。當您 從 PDF Java 提取文字 時,便為搜尋引擎提供可理解的內容。
String documentPath = "YOUR_DOCUMENT_DIRECTORY/Lorem ipsum.pdf";
Extractor extractor = new Extractor();
Document document = Document.createFromFile(documentPath);
ExtractionOptions extractionOptions = new ExtractionOptions();
extractionOptions.setUseRawTextExtraction(false); // Extract with formatting
ExtractedData extractedData = extractor.extract(document, extractionOptions);
提示: 若需要純文字且不保留格式,請設定
setUseRawTextExtraction(true)。
如何序列化抽取的資料
序列化可讓您將抽取的資料儲存起來,以便日後建立索引。
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
extractedData.serialize(outputStream);
byte[] serializedArray = outputStream.toByteArray();
如何反序列化抽取的資料
當您準備好建立索引時,將位元組陣列轉回物件。
ByteArrayInputStream inputStream = new ByteArrayInputStream(serializedArray);
ExtractedData deserializedData = ExtractedData.deserialize(inputStream);
如何建立文件索引
取得 deserializedData 後,即可建立保存可搜尋詞彙的索引。
String indexFolder = "YOUR_OUTPUT_DIRECTORY/AdvancedUsage/Indexing/SeparateDataExtraction";
com.groupdocs.search.Index index = new com.groupdocs.search.Index(indexFolder);
如何將資料加入索引並執行搜尋
將資料加入索引並查詢,即完成 從 PDF Java 提取文字 的完整工作流程。
ExtractedData[] dataToIndex = new ExtractedData[] { deserializedData };
index.add(dataToIndex, new IndexingOptions());
String query = "ipsum";
SearchResult result = index.search(query);
專業提示: 使用
index.search("your query", SearchOptions)可微調相關性排序。
常見使用情境
- 文件管理系統 – 快速定位合約、發票或政策文件。
- 內容為本的搜尋引擎 – 為內部知識庫提供全文搜尋 Java 能力。
- 資料封存解決方案 – 索引歷史紀錄,實現即時檢索。
效能考量
- 記憶體管理: 為大量文件批次調整 JVM 堆積大小。
- 索引選項: 停用不必要的功能(例如詞項向量)以加速索引。
- 定期更新: 保持 GroupDocs.Search 為最新版本,以獲得效能修補。
常見問與答
Q: 如何有效處理極大型 PDF 檔案?
A: 使用 Extractor 以串流方式讀取,分塊處理;必要時增大 JVM 堆積。
Q: 我可以自訂搜尋查詢語法嗎?
A: 可以——GroupDocs.Search 支援布林運算子、萬用字元與相近搜尋。
Q: 若序列化失敗該怎麼辦?
A: 確認所有物件皆實作 Serializable,並捕捉 IOException 以記錄細節。
Q: 能否只索引文件的特定區段?
A: 完全可以——在索引前設定 ExtractionOptions 以過濾頁面或區段。
Q: 如何升級至較新版本的 GroupDocs.Search?
A: 在 pom.xml 中更新版本號,然後執行 mvn clean install;請參考遷移指南以了解破壞性變更。
資源
- 文件說明: GroupDocs Documentation
- API 參考: GroupDocs API Reference
- 下載: GroupDocs Downloads
- GitHub: GroupDocs GitHub Repository
- 免費支援: GroupDocs Forum
- 臨時授權: Obtain a Temporary License
最後更新: 2026-02-19
測試環境: GroupDocs.Search 25.4 for Java
作者: GroupDocs