Cách tìm kiếm bằng Regex trong Java với GroupDocs.Search

Searching through thousands of text documents can feel like looking for a needle in a haystack. How to regex search trong Java trở nên dễ dàng khi bạn kết hợp engine biểu thức chính quy mạnh mẽ của ngôn ngữ với GroupDocs.Search, một thư viện xây dựng chỉ mục cho việc khớp mẫu siêu nhanh. Trong vài phút tới, bạn sẽ thấy cách cài đặt thư viện, tạo chỉ mục, thêm tệp và chạy cả truy vấn regex dựa trên văn bản đơn giản và dạng đối tượng. Khi kết thúc, bạn sẽ sẵn sàng tích hợp tìm kiếm dựa trên mẫu mạnh mẽ vào bất kỳ ứng dụng Java nào.

Câu trả lời nhanh

  • Thư viện chính là gì? GroupDocs.Search for Java
  • Làm sao để bắt đầu? Add the Maven dependency and instantiate an Index object
  • Tôi có thể lọc nội dung bằng regex không? Yes – use regex queries for content‑filtering scenarios
  • Tôi có cần giấy phép không? A free trial or temporary license is required for production use
  • Phiên bản JDK nào được hỗ trợ? Java 8 or higher

Tìm kiếm Regex là gì?

Regex search lets you locate patterns such as dates, email addresses, or repeated characters across many files in a single operation. It turns a plain text query into a powerful, rule‑based scanner that can extract or block content on the fly.

Tại sao nên sử dụng GroupDocs.Search cho tìm kiếm Regex?

GroupDocs.Search lập chỉ mục cho các tài liệu một lần và sau đó tái sử dụng chỉ mục đó cho mọi truy vấn, mang lại các tìm kiếm lên tới 10× nhanh hơn so với việc quét tệp thô. Thư viện hỗ trợ hơn 30 định dạng tệp (PDF, DOCX, XLSX, PPTX, TXT, HTML và hơn nữa) và có thể xử lý các tệp hàng trăm trang mà không cần tải toàn bộ tệp vào bộ nhớ.

Yêu cầu trước

  • Java Development Kit (JDK) 8 hoặc cao hơn
  • Maven để quản lý phụ thuộc
  • Kiến thức cơ bản về biểu thức chính quy Java

Thư viện và phụ thuộc cần thiết

Thêm GroupDocs.Search vào dự án Maven 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>

Hoặc, tải JAR mới nhất từ GroupDocs.Search for Java releases.

Nhận giấy phép

Nhận bản dùng thử miễn phí hoặc giấy phép tạm thời từ GroupDocs.License và tải nó khi khởi động ứng dụng.

Cài đặt GroupDocs.Search cho Java

Thông tin cài đặt

  1. Maven Integration: Thêm repository và dependency được hiển thị ở trên vào pom.xml của bạn.
  2. Direct Download: Đặt các tệp JAR vào classpath của dự án.
  3. License Application: Tải tệp giấy phép khi khởi động ứng dụng.
import com.groupdocs.search.*;

public class SearchSetup {
    public static void main(String[] args) {
        // Initialize the index by specifying a directory.
        String indexFolder = "YOUR_DOCUMENT_DIRECTORY\\output\\AdvancedUsage\\Searching\\RegularExpressionSearch";
        Index index = new Index(indexFolder);

        System.out.println("Index created successfully at: " + indexFolder);
    }
}

Thành phần cốt lõi

Lớp Index là thành phần cốt lõi lưu trữ các token có thể tìm kiếm được trích xuất từ tài liệu của bạn. Nó cho phép tra cứu nhanh bất kỳ thuật ngữ hoặc mẫu nào mà không cần đọc lại các tệp gốc.

Cách tạo chỉ mục

Việc tạo chỉ mục rất đơn giản: khởi tạo lớp Index với đường dẫn thư mục nơi các tệp chỉ mục sẽ được lưu. Hàm khởi tạo tạo các tệp cơ sở dữ liệu cần thiết khi lần đầu sử dụng và chuẩn bị engine để thêm và tìm kiếm tài liệu. Khi đã tạo, hãy tái sử dụng cùng một chỉ mục cho tất cả các truy vấn.

String indexFolder = "YOUR_DOCUMENT_DIRECTORY\\output\\AdvancedUsage\\Searching\\RegularExpressionSearch";
Index index = new Index(indexFolder);

Cách thêm tài liệu

Để làm cho một tệp có thể tìm kiếm được, gọi index.add với một thể hiện Document (hoặc DocumentInfo) trỏ tới đường dẫn tệp. Thư viện phân tích nội dung, trích xuất token và lưu chúng vào chỉ mục. Thao tác này có thể thực hiện cho từng tệp riêng lẻ hoặc theo lô, và các cập nhật được hợp nhất một cách tăng dần.

index.add("YOUR_DOCUMENT_DIRECTORY");
system.out.println("Documents added to the index.");

Cách thực hiện tìm kiếm biểu thức chính quy dạng văn bản

RegexQuery định nghĩa một truy vấn tìm kiếm dựa trên biểu thức chính quy. Tải một RegexQuery với mẫu văn bản thuần và truyền nó vào phương thức search của Index. Engine đánh giá mẫu so với các token đã được lập chỉ mục và trả về các tham chiếu tài liệu khớp, giúp tra cứu một lần nhanh và đơn giản.

String query1 = "^((.)\\2{1,})";

Cách thực hiện tìm kiếm biểu thức chính quy dạng đối tượng

RegexQuery cũng có thể được xây dựng dưới dạng đối tượng và tái sử dụng trong nhiều tìm kiếm. Định nghĩa truy vấn một lần, cấu hình các tùy chọn như không phân biệt chữ hoa/thường hoặc khớp mờ, và gọi index.search liên tục. Cách tiếp cận này cải thiện hiệu năng khi cùng một mẫu được áp dụng cho nhiều bộ tài liệu khác nhau.

SearchResult result1 = index.search(query1);
system.out.println("Number of occurrences found: " + result1.getDocumentCount());

Các trường hợp sử dụng regex để lọc nội dung

Bạn có thể sử dụng regex để tự động chặn hoặc đánh dấu nội dung khớp với các mẫu nhất định, chẳng hạn:

  • Phát hiện ký tự lặp lại để lọc spam
  • Tìm các chuỗi giống thẻ tín dụng để kiểm tra bảo mật dữ liệu
  • Trích xuất ngày tháng hoặc ID để xử lý tiếp theo

Ứng dụng thực tiễn

  1. Document Management Systems: Xác định hợp đồng, hoá đơn hoặc chính sách theo mẫu (ví dụ, số hoá đơn).
  2. Content Moderation: Áp dụng quy tắc regex để kiểm duyệt văn bản do người dùng tạo trong diễn đàn hoặc ứng dụng chat.
  3. Data Extraction: Trích xuất dữ liệu có cấu trúc như số đơn đặt hàng từ các PDF hoặc tệp Word không có cấu trúc.

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

  • Index Updates: Gọi index.add mỗi khi các tệp nguồn thay đổi để giữ kết quả luôn mới.
  • Memory Management: Đối với tập hợp tài liệu vượt quá 1 triệu tài liệu, bật lập chỉ mục tăng dần để giữ việc sử dụng heap trong kiểm soát.
  • Regex Design: Giữ các mẫu ngắn gọn; một mẫu như \d{4}-\d{2}-\d{2} chạy nhanh gấp 3× so với biểu thức có nhiều ký tự đại diện như .*.

Kết luận

Bạn đã biết how to regex search trong Java sử dụng GroupDocs.Search, từ việc cài đặt thư viện và tạo chỉ mục đến thực thi cả truy vấn dựa trên văn bản và dạng đối tượng. Những kỹ thuật này cho phép bạn thêm tìm kiếm nhanh, nhận biết mẫu vào bất kỳ ứng dụng Java nào, dù bạn đang xây dựng cổng tài liệu, công cụ quét tuân thủ, hay quy trình khai thác dữ liệu.

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

Q: Sự khác biệt giữa truy vấn regex dựa trên văn bản và dựa trên đối tượng trong GroupDocs.Search là gì?
A: Các truy vấn dựa trên văn bản là các dòng lệnh nhanh, trong khi các truy vấn dựa trên đối tượng cung cấp các định nghĩa có thể tái sử dụng, an toàn kiểu, có thể lưu và tái sử dụng trong nhiều tìm kiếm.

Q: GroupDocs.Search có thể lập chỉ mục cho các tài liệu không phải văn bản như PDF hoặc Excel không?
A: Có, thư viện trích xuất văn bản có thể tìm kiếm được từ PDF, DOCX, XLSX, PPTX và hơn 30 định dạng khác.

Q: Làm sao tôi cập nhật chỉ mục tìm kiếm hiện có sau khi thêm tệp mới?
A: Gọi index.add với các tài liệu mới hoặc đã sửa đổi; thư viện sẽ hợp nhất các thay đổi mà không cần xây dựng lại toàn bộ chỉ mục.

Q: Những khó khăn thường gặp khi sử dụng regex với GroupDocs.Search là gì?
A: Các mẫu quá rộng (ví dụ, .*) có thể gây suy giảm hiệu năng, và các biểu thức sai định dạng có thể không trả về kết quả. Luôn thử nghiệm các mẫu trên một tập mẫu trước.

Q: Tôi có thể tìm các hướng dẫn nâng cao về GroupDocs.Search ở đâu?
A: Truy cập GroupDocs Documentation để xem các hướng dẫn chi tiết, tài liệu API và dự án mẫu.


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

SearchQuery query2 = SearchQuery.createRegexQuery("^(.)\\1{1,}");
SearchResult result2 = index.search(query2);
system.out.println("Occurrences found using object form: " + result2.getDocumentCount());

Hướng dẫn liên quan