Làm nổi bật văn bản java với GroupDocs.Search
Trong các ứng dụng doanh nghiệp hiện đại, highlight text java là điều thiết yếu để biến kết quả tìm kiếm thô thành những hiểu biết có thể đọc ngay lập tức. Cho dù bạn đang xây dựng một cổng thông tin xem xét pháp lý, một công cụ nghiên cứu học thuật, hay một bảng điều khiển hỗ trợ khách hàng, khả năng xác định và làm nổi bật trực quan các thuật ngữ truy vấn giúp người dùng tiết kiệm vô số giây quét thủ công. Hướng dẫn này cho bạn cách sử dụng GroupDocs.Search for Java để search documents java, index documents java, và áp dụng cả việc làm nổi bật toàn bộ tài liệu và mức đoạn, tất cả chỉ với vài dòng mã.
Câu trả lời nhanh
- Có nghĩa là gì khi “search and highlight text”? Nó có nghĩa là xác định các thuật ngữ truy vấn trong tài liệu và làm nổi bật chúng một cách trực quan (ví dụ, bằng nền màu).
- Thư viện nào cung cấp khả năng này? GroupDocs.Search for Java.
- 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 đánh giá; cần giấy phép đầy đủ cho môi trường sản xuất.
- Tôi có thể tùy chỉnh màu nổi bật không? Có—bất kỳ màu RGB nào cũng có thể được đặt qua
HighlightOptions. - Có hỗ trợ làm nổi bật đoạn không? Chắc chắn; bạn có thể định nghĩa số từ trước/sau kết quả để tạo các đoạn ngắn gọn.
Cách làm nổi bật văn bản java trong tài liệu
Để làm nổi bật văn bản java trong tài liệu, trước tiên xây dựng một chỉ mục của các tệp nguồn bằng các cài đặt nén phù hợp, sau đó chạy truy vấn tìm kiếm để xác định các thuật ngữ mong muốn, và cuối cùng xuất kết quả ra HTML, PDF hoặc văn bản thuần với mỗi kết quả được bao bọc trong thẻ nổi bật. Quy trình ba bước này đảm bảo việc làm nổi bật nhanh chóng và chính xác trên các bộ sưu tập lớn.
- Tạo một chỉ mục với các cài đặt nén giúp giảm kích thước lưu trữ.
- Thực hiện tìm kiếm bằng chuỗi truy vấn bạn muốn làm nổi bật.
- Tạo đầu ra (HTML, PDF hoặc văn bản thuần) trong đó mọi lần xuất hiện của thuật ngữ truy vấn được bao bọc trong thẻ nổi bật.
Tìm kiếm và làm nổi bật văn bản là gì?
Tìm kiếm và làm nổi bật văn bản là quá trình quét một bộ sưu tập đã được lập chỉ mục cho một truy vấn cho trước, truy xuất các tài liệu khớp, và sau đó đánh dấu mỗi lần xuất hiện của thuật ngữ truy vấn trong đầu ra (HTML, PDF, v.v.). Dấu hiệu trực quan này giúp người dùng cuối nhanh chóng nhận ra thông tin liên quan.
Tại sao nên sử dụng GroupDocs.Search cho Java?
GroupDocs.Search cho Java cung cấp đánh chỉ mục hiệu năng cao (lên tới 50 GB mỗi chỉ mục với Compression.High), làm nổi bật phong phú hoạt động trên toàn bộ tài liệu và các đoạn tùy chỉnh, và hỗ trợ đa định dạng cho hơn 30 loại tệp—bao gồm DOCX, PDF, PPTX và TXT. Thư viện còn hỗ trợ đánh chỉ mục gia tăng, cho phép bạn thêm tệp mới mà không cần xây dựng lại toàn bộ chỉ mục, giảm thời gian ngừng hoạt động lên tới 80 % trong các triển khai quy mô lớn.
Yêu cầu trước
- Java Development Kit (JDK) 8 hoặc mới hơn.
- Maven để quản lý phụ thuộc.
- Một IDE như IntelliJ IDEA hoặc Eclipse.
- Kiến thức cơ bản về cú pháp Java.
Cài đặt GroupDocs.Search cho Java
Thêm kho lưu trữ và phụ thuộc GroupDocs vào pom.xml của bạn:
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-search</artifactId>
<version>25.4</version>
</dependency>
Bạn cũng có thể tải JAR mới nhất trực tiếp từ trang chính thức: GroupDocs.Search for Java releases.
Nhận giấy phép
Bắt đầu với bản dùng thử miễn phí hoặc nhận giấy phép tạm thời để đánh giá. Đối với triển khai sản xuất, mua giấy phép đầy đủ để mở khóa tất cả tính năng.
Hướng dẫn triển khai
Việc triển khai được chia thành hai phần thực tế: làm nổi bật trong toàn bộ tài liệu và làm nổi bật trong các đoạn. Cả hai phần đều bao gồm các bước cần thiết để làm nổi bật Java tài liệu bằng GroupDocs.Search.
Cấu hình cài đặt chỉ mục
Trước khi lập chỉ mục, cấu hình lưu trữ để sử dụng nén cao—điều này giảm việc sử dụng đĩa lên tới 70 % trong khi vẫn duy trì tốc độ tìm kiếm.
IndexSettings là đối tượng cấu hình kiểm soát cách chỉ mục được lưu trên đĩa. Đặt Compression thành Compression.High để bật tối ưu này.Compression chỉ mức độ nén dữ liệu áp dụng cho các tệp chỉ mục, với Compression.High cung cấp mức giảm kích thước tối đa.
Làm nổi bật trong toàn bộ tài liệu
Bước 1: tạo và điền dữ liệu vào chỉ mục
Tạo một thư mục chỉ mục và thêm tất cả các tệp nguồn bạn muốn tìm kiếm. Lớp Index đại diện cho container có thể tìm kiếm.
Bước 2: thực hiện tìm kiếm và áp dụng làm nổi bật
Tìm kiếm thuật ngữ (ví dụ, ipsum) và tạo tệp HTML với các kết quả được làm nổi bật. Sử dụng HighlightOptions để chỉ định màu nổi bật và việc sử dụng style nội tuyến hay không.
HighlightOptions cho phép bạn định nghĩa màu nền và màu chữ, cũng như lớp CSS sẽ được áp dụng cho mỗi thuật ngữ được làm nổi bật.
HtmlHighlighter tạo đầu ra HTML với các thuật ngữ được làm nổi bật dựa trên các tùy chọn đã cung cấp.SearchResult chứa danh sách các tài liệu khớp và vị trí của mỗi thuật ngữ tìm được.
Câu trả lời trực tiếp: Tải chỉ mục của bạn, gọi search("ipsum"), và truyền SearchResult cùng với một thể hiện HighlightOptions đã cấu hình vào HtmlHighlighter. Trình làm nổi bật sẽ trả về HTML trong đó mỗi lần xuất hiện của “ipsum” được bao bọc trong <span> với màu nền đã chọn.
Các tùy chọn chính được giải thích
- Compression – nén cao giúp tiết kiệm không gian lưu trữ.
- HighlightColor – đặt bất kỳ giá trị RGB nào để phù hợp với bảng màu UI của bạn.
- UseInlineStyles –
falsetạo HTML sạch sẽ có thể được định dạng toàn cục bằng CSS.
Làm nổi bật trong các đoạn
Bước 1: lập chỉ mục và tìm kiếm (giống như trên)
Các bước lập chỉ mục và tìm kiếm giống nhau; bạn tái sử dụng các đối tượng Index và SearchResult.
Bước 2: định nghĩa ngữ cảnh đoạn và làm nổi bật
Xác định số từ trước và sau kết quả nên xuất hiện trong mỗi đoạn bằng FragmentOptions.
FragmentOptions kiểm soát số từ xung quanh (termsBefore và termsAfter) được bao gồm trong mỗi đoạn trích, cho phép cân bằng giữa ngữ cảnh và độ dài đoạn.
Bước 3: lấy và ghi các đoạn đã được làm nổi bật
Thu thập các đoạn đã tạo và ghi chúng vào tệp HTML. Mỗi đoạn đã được làm nổi bật theo HighlightOptions bạn đã cấu hình.
fragmentHighlighter là tiện ích tạo các đoạn trích đã được làm nổi bật từ SearchResult dựa trên các tùy chọn đoạn và làm nổi bật đã chỉ định.
Câu trả lời trực tiếp: Sau khi có SearchResult, gọi fragmentHighlighter.highlight(searchResult, fragmentOptions, highlightOptions). Phương thức này trả về danh sách các đoạn HTML, mỗi đoạn chứa thuật ngữ khớp được bao quanh bởi số từ ngữ cảnh đã cấu hình và được làm nổi bật bằng màu đã chọn.
Ứng dụng thực tế
- Legal document review – nhanh chóng làm nổi bật các điều luật, điều khoản hoặc tham chiếu vụ án trên hàng ngàn hợp đồng.
- Academic research – hiển thị nhanh các thuật ngữ quan trọng trên hàng chục tệp PDF và Word, giảm thời gian rà soát tài liệu lên tới 60 %.
- Customer support – xác định nhanh số đơn hàng hoặc mã lỗi trong lịch sử ticket, giúp nhân viên hỗ trợ giải quyết vấn đề nhanh hơn.
Các cân nhắc về hiệu năng
- Kích thước chỉ mục – nén cao (
Compression.High) giảm dung lượng đĩa lên tới 70 % mà không gây ảnh hưởng đáng kể tới độ trễ. - Ngữ cảnh đoạn – giá trị
termsBefore/Afterlớn hơn tăng khả năng đọc của đoạn nhưng có thể thêm 10–15 ms cho mỗi truy vấn. - Quản lý bộ nhớ – giám sát heap JVM khi lập chỉ mục các tập dữ liệu lớn; cân nhắc đánh chỉ mục gia tăng cho các bộ dữ liệu vượt 2 GB để giữ mức sử dụng bộ nhớ dưới 1 GB.
Các vấn đề thường gặp và giải pháp
- Lỗi lập chỉ mục – kiểm tra lại đường dẫn tệp và đảm bảo ứng dụng có quyền đọc/ghi trên thư mục chỉ mục.
- Không có đoạn nào được làm nổi bật – xác nhận
UseInlineStylesphù hợp với định dạng đầu ra của bạn (HTML so với PDF). - Màu không hiển thị – đảm bảo các giá trị RGB nằm trong khoảng 0‑255 và trình xem tôn trọng CSS nội tuyến hoặc lớp CSS được cung cấp.
Câu hỏi thường gặp
Q: Lợi ích của việc sử dụng GroupDocs.Search cho Java là gì?
A: Nó cung cấp đánh chỉ mục nhanh, mở rộng, làm nổi bật tùy chỉnh và hỗ trợ hơn 30 định dạng tài liệu, xử lý các tệp 500 trang trong dưới 2 giây trên máy chủ tiêu chuẩn.
Q: Làm sao tích hợp GroupDocs.Search với API REST?
A: Phơi bày các phương thức tìm kiếm và làm nổi bật qua các controller Spring Boot, trả về các đoạn HTML hoặc payload JSON chứa các đoạn đã được làm nổi bật.
Q: Thư viện có xử lý các tệp được bảo vệ bằng mật khẩu không?
A: Có—cung cấp mật khẩu khi thêm tài liệu vào chỉ mục bằng addDocument(filePath, password).
Q: Tôi có thể tùy chỉnh markup nổi bật ngoài màu sắc không?
A: Chắc chắn; bạn có thể gán lớp CSS bằng options.setCssClass("myHighlight") và định dạng nó toàn cục, hoặc chỉnh sửa HTML sau khi làm nổi bật.
Q: Phiên bản nào đã được kiểm tra cho hướng dẫn này?
A: Mã đã được xác thực với GroupDocs.Search 25.4.
Q: Làm sao đặt tùy chọn nổi bật java để sử dụng lớp CSS thay vì style nội tuyến?
A: Gọi options.setUseInlineStyles(false) và định nghĩa quy tắc CSS cho lớp bạn gán qua options.setCssClass("myHighlight").
Q: Có cách nào làm nổi bật thuật ngữ trong đầu ra PDF trực tiếp không?
A: Có—GroupDocs.Search làm việc với đầu vào PDF, và trình làm nổi bật xuất HTML có thể nhúng vào trình xem PDF hoặc chuyển lại PDF bằng GroupDocs.Conversion.
Cập nhật lần cuối: 2026-09-27
Đã kiểm tra với: GroupDocs.Search 25.4.
Tác giả: GroupDocs
<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>
IndexSettings settings = new IndexSettings();
settings.setTextStorageSettings(new TextStorageSettings(Compression.High));
String indexFolder = "/path/to/your/document/directory/HighlightingInEntireDocument";
Index index = new Index(indexFolder, settings);
index.add("/path/to/your/documents");
SearchResult result = index.search("ipsum");
if (result.getDocumentCount() > 0) {
FoundDocument document = result.getFoundDocument(0);
OutputAdapter outputAdapter = new FileOutputAdapter(OutputFormat.Html, "/path/to/your/output/directory/Highlighted.html");
Highlighter highlighter = new DocumentHighlighter(outputAdapter);
HighlightOptions options = new HighlightOptions();
options.setHighlightColor(new Color(150, 255, 150)); // Custom green shade
options.setUseInlineStyles(false); // Prefer CSS for styling
index.highlight(document, highlighter, options);
}
String indexFolder = "/path/to/your/document/directory/HighlightingInFragments";
Index index = new Index(indexFolder, settings);
index.add("/path/to/your/documents");
SearchResult result = index.search("ipsum");
HighlightOptions options = new HighlightOptions();
options.setTermsBefore(5); // Include 5 terms before the match
options.setTermsAfter(5); // Include 5 terms after the match
options.setHighlightColor(new Color(127, 200, 255)); // Custom blue shade
options.setUseInlineStyles(true); // Use inline styles for emphasis
FoundDocument document = result.getFoundDocument(0);
FragmentHighlighter highlighter = new FragmentHighlighter(OutputFormat.Html);
index.highlight(document, highlighter, options);
StringBuilder stringBuilder = new StringBuilder();
FragmentContainer[] fragmentContainers = highlighter.getResult();
for (FragmentContainer container : fragmentContainers) {
String[] fragments = container.getFragments();
if (fragments.length > 0) {
stringBuilder.append("\n<br>").append(container.getFieldName()).append("<br>\n");
for (String fragment : fragments) {
stringBuilder.append(fragment).append("\n");
}
}
}
try {
Files.write(Paths.get("/path/to/your/output/directory/Fragments.html"), stringBuilder.toString().getBytes());
} catch (IOException ex) {
// Handle exceptions
}