Trích xuất văn bản PDF Java – Xây dựng chỉ mục với GroupDocs.Search

Trong hướng dẫn thực hành này, bạn sẽ khám phá how to extract pdf text java từ các tệp PDF, tuần tự hoá nội dung đã trích xuất và tạo một chỉ mục tìm kiếm hiệu suất cao. Dù bạn đang xây dựng một cơ sở tri thức nội bộ, một cổng tìm kiếm hợp đồng, hay một công cụ tìm kiếm tùy chỉnh, các bước dưới đây sẽ hướng dẫn bạn mọi thứ — từ việc lấy văn bản ra khỏi PDF đến thực hiện các truy vấn toàn văn mạnh mẽ. Hãy cùng khám phá và xem tại sao GroupDocs.Search làm cho toàn bộ quá trình trở nên mượt mà và có khả năng mở rộng.

Câu trả lời nhanh

Phương thức index.search thực hiện một truy vấn trên chỉ mục đã tạo và trả về danh sách các tài liệu khớp cùng với điểm liên quan.

  • Mục đích chính là gì? Để trích xuất pdf text java từ các tệp PDF và tạo một chỉ mục tài liệu có thể tìm kiếm với GroupDocs.Search.
  • Phiên bản thư viện nào? GroupDocs.Search 25.4 (hoặc bản phát hành mới nhất).
  • Tôi có cần giấy phép không? Bản dùng thử miễn phí hoạt động cho việc phát triển; giấy phép đầy đủ cần thiết cho môi trường sản xuất.
  • Tôi có thể lập chỉ mục PDF không? Có — trích xuất văn bản PDF và thêm vào chỉ mục.
  • Làm thế nào để thực hiện tìm kiếm? Sử dụng phương thức index.search(query) sau khi đã thêm dữ liệu.

Chỉ mục tài liệu là gì?

Chỉ mục tài liệu là một tập hợp có cấu trúc của các thuật ngữ có thể tìm kiếm được trích xuất từ các tệp của bạn. Nó ánh xạ mỗi thuật ngữ tới các tài liệu mà chúng xuất hiện, cho phép tìm kiếm toàn văn nhanh chóng trên các kho lưu trữ lớn và giảm thời gian tra cứu từ phút xuống mili giây, đồng thời hỗ trợ các tính năng xếp hạng và độ liên quan.

Tại sao nên sử dụng GroupDocs.Search cho Java?

GroupDocs.Search hỗ trợ 50+ input and output formats, có thể lập chỉ mục millions of documents mà không cần tải toàn bộ tệp vào bộ nhớ, và cung cấp một rich query language với các toán tử Boolean, wildcard và proximity. Những khả năng được định lượng này làm cho nó trở thành giải pháp lý tưởng cho tìm kiếm quy mô doanh nghiệp. Nó cũng cung cấp tính năng phát hiện ngôn ngữ tích hợp, stemming và các bộ phân tích có thể tùy chỉnh để cải thiện độ chính xác tìm kiếm cho nội dung đa ngôn ngữ.

Các yêu cầu trước

  • GroupDocs.Search for Java (Version 25.4 hoặc mới hơn).
  • Java Development Kit (JDK) tương thích với phiên bản GroupDocs của bạn.
  • Một IDE như IntelliJ IDEA hoặc Eclipse.
  • Maven để quản lý phụ thuộc.

Cài đặt GroupDocs.Search cho Java

Đầu tiên, thêm thư viện vào dự án của bạn.

Cài đặt Maven
Bao gồm các đoạn sau trong tệp pom.xml của bạn:

<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>

Tải xuống trực tiếp
Hoặc tải phiên bản mới nhất từ GroupDocs.Search for Java releases.

Nhận giấy phép

  • Free Trial – Kiểm tra tất cả các tính năng với giấy phép tạm thời.
  • Purchase – Nhận quyền truy cập đầy đủ và hỗ trợ ưu tiên.

Cách trích xuất văn bản từ PDF (và các tài liệu khác)

Tải PDF của bạn (hoặc tài liệu được hỗ trợ) bằng lớp Extractor, cấu hình các tùy chọn trích xuất và gọi extractText(). Lệnh một dòng này trả về văn bản thô hoặc đã định dạng, sẵn sàng để lập chỉ mục.

Lớp Extractor là thành phần cốt lõi của GroupDocs.Search, đọc tài liệu và tạo ra văn bản thuần hoặc đã định dạng.

// ```java
String documentPath = "YOUR_DOCUMENT_DIRECTORY/Lorem ipsum.pdf";
Extractor extractor = new Extractor();
Document document = Document.createFromFile(documentPath);
// ```java
ExtractionOptions extractionOptions = new ExtractionOptions();
extractionOptions.setUseRawTextExtraction(false); // Extract with formatting
ExtractedData extractedData = extractor.extract(document, extractionOptions);

Mẹo: Đặt setUseRawTextExtraction(true) nếu bạn cần văn bản thuần không có định dạng.

Cách tuần tự hoá dữ liệu đã trích xuất

Tuần tự hoá chuyển đổi đối tượng văn bản đã trích xuất thành một mảng byte, cho phép bạn lưu trữ nó trên đĩa hoặc truyền qua mạng để lập chỉ mục sau này.

Tiện ích SerializationUtil cung cấp các phương thức tĩnh để chuyển đổi đối tượng thành luồng byte và ngược lại.

// ```java
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
extractedData.serialize(outputStream);
byte[] serializedArray = outputStream.toByteArray();

Cách giải tuần tự hoá dữ liệu đã trích xuất

Khi bạn sẵn sàng xây dựng chỉ mục, giải tuần tự hoá mảng byte đã lưu trước đó trở lại đối tượng trích xuất gốc.

Phương thức deserialize khôi phục trạng thái chính xác của kết quả trích xuất, đảm bảo không mất dữ liệu giữa các phiên.

// ```java
ByteArrayInputStream inputStream = new ByteArrayInputStream(serializedArray);
ExtractedData deserializedData = ExtractedData.deserialize(inputStream);

Cách tạo chỉ mục tài liệu

Khởi tạo một đối tượng Index, chỉ định thư mục lưu trữ và cấu hình các tùy chọn lập chỉ mục như vector thuật ngữ và xử lý từ dừng.

Lớp Index đại diện cho container có thể tìm kiếm, chứa tất cả các thuật ngữ, tham chiếu tài liệu và siêu dữ liệu.

// ```java
String indexFolder = "YOUR_OUTPUT_DIRECTORY/AdvancedUsage/Indexing/SeparateDataExtraction";
com.groupdocs.search.Index index = new com.groupdocs.search.Index(indexFolder);

Cách thêm dữ liệu vào chỉ mục và thực hiện tìm kiếm

Thêm kết quả trích xuất đã giải tuần tự hoá vào chỉ mục bằng index.add(), sau đó truy vấn bằng index.search() để có kết quả ngay lập tức.

Phương thức add đăng ký các thuật ngữ của tài liệu vào chỉ mục, trong khi search thực thi truy vấn trên các thuật ngữ đó.

// ```java
ExtractedData[] dataToIndex = new ExtractedData[] { deserializedData };
index.add(dataToIndex, new IndexingOptions());
// ```java
String query = "ipsum";
SearchResult result = index.search(query);

Mẹo chuyên nghiệp: Sử dụng index.search("your query", SearchOptions) để tinh chỉnh xếp hạng độ liên quan.

Các trường hợp sử dụng phổ biến

  1. Document Management Systems – Nhanh chóng định vị hợp đồng, hoá đơn hoặc chính sách.
  2. Content‑Based Search Engines – Cung cấp năng lực tìm kiếm toàn văn cho các cơ sở tri thức nội bộ.
  3. Data Archiving Solutions – Lập chỉ mục các hồ sơ lịch sử để truy xuất ngay lập tức.

Các cân nhắc về hiệu năng

Phương thức setStoreTermVectors(boolean) cấu hình việc có lưu trữ vector thuật ngữ trong chỉ mục hay không, ảnh hưởng đến kích thước chỉ mục và hiệu năng truy vấn.

  • Memory Management: Tăng kích thước heap JVM (ví dụ, -Xmx4g) khi xử lý các lô lớn hơn 500 MB.
  • Indexing Options: Vô hiệu hoá vector thuật ngữ (setStoreTermVectors(false)) để giảm kích thước chỉ mục tới 30 %.
  • Regular Updates: Giữ GroupDocs.Search luôn cập nhật; mỗi bản phát hành phụ bao gồm cải thiện tốc độ trung bình từ 10‑15 %.

Câu hỏi thường gặp

Q: Làm thế nào để xử lý các tệp PDF rất lớn một cách hiệu quả?
A: Dòng dữ liệu tệp bằng Extractor và xử lý theo từng khối; cũng tăng kích thước heap JVM nếu cần.

Q: Tôi có thể tùy chỉnh cú pháp truy vấn tìm kiếm không?
A: Có — GroupDocs.Search hỗ trợ các toán tử Boolean, wildcard và tìm kiếm proximity.

Q: Tôi nên làm gì nếu quá trình tuần tự hoá thất bại?
A: Xác minh rằng tất cả các đối tượng đều triển khai Serializable và bắt IOException để ghi lại chi tiết.

Q: Có thể lập chỉ mục chỉ các phần cụ thể của tài liệu không?
A: Chắc chắn — cấu hình ExtractionOptions để lọc các trang hoặc phần trước khi lập chỉ mục.

Q: Làm thế nào để nâng cấp lên phiên bản GroupDocs.Search mới hơn?
A: Cập nhật số phiên bản trong pom.xml của bạn và chạy mvn clean install; xem lại hướng dẫn di chuyển để biết các thay đổi gây phá vỡ.

Tài nguyên


Cập nhật lần cuối: 2026-07-07
Đã kiểm tra với: GroupDocs.Search 25.4 cho Java
Tác giả: GroupDocs

Các hướng dẫn liên quan