Làm nổi bật Kết quả Tìm kiếm Java – Đánh chỉ mục Đồng bộ & Bất đồng bộ
Boost your Java applications by highlighting search results Java with the powerful GroupDocs.Search library. Whether you’re dealing with a few files or a massive repository, mastering both synchronous and asynchronous indexing lets you deliver fast, accurate results without blocking your application threads.
Câu trả lời nhanh
- “highlight search results Java” có nghĩa là gì? Nó đề cập đến việc hiển thị các thuật ngữ khớp trong kết quả tìm kiếm bằng các dấu hiệu trực quan (ví dụ, thẻ HTML
<mark>) để người dùng có thể thấy vị trí truy vấn xuất hiện trong mỗi tài liệu. - Khi nào nên sử dụng đánh chỉ mục đồng bộ? Đối với các bộ dữ liệu nhỏ đến trung bình, nơi cần tài liệu mới thêm có sẵn ngay lập tức.
- Khi nào nên ưu tiên đánh chỉ mục bất đồng bộ? Khi xử lý các bộ sưu tập tài liệu lớn hoặc chạy trên luồng UI mà bạn phải giữ cho ứng dụng phản hồi nhanh.
- Tôi có cần giấy phép không? Bản dùng thử miễn phí đủ cho việc phát triển; giấy phép đầy đủ mở khóa các tính năng nâng cao và loại bỏ giới hạn sử dụng.
- Phiên bản Java nào được hỗ trợ? Java 8 hoặc mới hơn.
“highlight search results Java” là gì?
Làm nổi bật kết quả tìm kiếm trong Java có nghĩa là lấy các kết quả khớp thô do GroupDocs.Search trả về và bao bọc các thuật ngữ khớp trong HTML (hoặc một markup khác) để chúng nổi bật khi hiển thị trong UI hoặc trang web. Điều này cải thiện trải nghiệm người dùng bằng cách ngay lập tức hiển thị ngữ cảnh của mỗi kết quả.
Tại sao nên sử dụng GroupDocs.Search cho Java?
GroupDocs.Search cung cấp một engine hiệu suất cao, ngôn ngữ‑không‑phụ thuộc, hỗ trợ:
- Đánh chỉ mục và tìm kiếm thời gian thực
- Xử lý bất đồng bộ cho khối lượng công việc lớn
- Tích hợp sẵn tính năng làm nổi bật kết quả
- Hỗ trợ đa ngôn ngữ và bộ phân tích tùy chỉnh
Những khả năng này làm cho nó trở thành lựa chọn lý tưởng cho hệ thống quản lý nội dung, danh mục thương mại điện tử và kho tài liệu doanh nghiệp.
Yêu cầu trước
Trước khi bắt đầu, hãy chắc chắn rằng bạn đã có:
- Java Development Kit (JDK 8 hoặc mới hơn) đã được cài đặt.
- Một IDE như IntelliJ IDEA hoặc Eclipse.
- Một thư mục chứa các tài liệu bạn muốn đánh chỉ mục.
- Maven để quản lý phụ thuộc (hoặc bạn có thể tải JAR thủ công).
Thư viện và Phụ thuộc Yêu cầu
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>
Đối với tải xuống trực tiếp, lấy phiên bản mới nhất từ GroupDocs.Search for Java releases.
Cài đặt Môi trường
- Xác minh JAVA_HOME của bạn trỏ tới JDK tương thích.
- Tạo một dự án trong IDE và thêm cấu hình Maven ở trên.
- Chuẩn bị một thư mục (ví dụ,
documents/) chứa các tệp văn bản, PDF hoặc Word mẫu.
Cách thiết lập GroupDocs.Search cho Java
- Cài đặt Thư viện – Sử dụng đoạn mã Maven ở trên hoặc tải JAR từ GroupDocs.
- Nhận Giấy phép – Bắt đầu với giấy phép dùng thử, sau đó nâng cấp khi bạn chuyển sang môi trường sản xuất.
- Khởi tạo Chỉ mục – Đoạn mã dưới đây cho thấy cách tạo (hoặc mở) một thư mục chỉ mục:
import com.groupdocs.search.Index;
// Create an index in the specified folder
Index index = new Index("path/to/index/folder");
Cách làm nổi bật kết quả tìm kiếm Java – Đánh chỉ mục Đồng bộ
Đánh chỉ mục đồng bộ xử lý tài liệu ngay lập tức, khiến các tệp mới thêm có thể tìm kiếm ngay lập tức.
Bước 1: Tạo chỉ mục và gắn xử lý lỗi
import com.groupdocs.search.*;
import com.groupdocs.search.events.*;
import java.nio.file.Paths;
public class SynchronousIndexingFeature {
public static void main(String[] args) {
String indexFolder = "YOUR_DOCUMENT_DIRECTORY/SynchronousIndexing";
String documentsFolder = YOUR_DOCUMENT_DIRECTORY; // Replace with actual directory path
Index index = new Index(indexFolder);
// Handle errors
index.getEvents().ErrorOccurred.add(new EventHandler<IndexErrorEventArgs>() {
@Override
public void invoke(Object sender, IndexErrorEventArgs args) {
System.out.println(args.getMessage());
}
});
Bước 2: Thêm tài liệu và thực hiện tìm kiếm
// Add documents
index.add(documentsFolder);
// Perform a search
String query = "tincidunt";
SearchResult result = index.search(query);
Bước 3: Xử lý kết quả và làm nổi bật kết quả tìm kiếm Java
for (int i = 0; i < result.getDocumentCount(); i++) {
FoundDocument document = result.getFoundDocument(i);
System.out.println(": Document: " + document.getDocumentInfo().getFilePath());
System.out.println(": Occurrences: " + document.getOccurrenceCount());
}
// Highlight results
if (result.getDocumentCount() > 0) {
FoundDocument document = result.getFoundDocument(0);
String path = YOUR_OUTPUT_DIRECTORY + "/Highlighted.html";
OutputAdapter outputAdapter = new FileOutputAdapter(OutputFormat.Html, path);
DocumentHighlighter highlighter = new DocumentHighlighter(outputAdapter);
index.highlight(document, highlighter);
}
}
}
DocumentHighlighter tự động bao bọc các thuật ngữ khớp bằng thẻ <mark> (hoặc bất kỳ định dạng nào bạn cấu hình), cung cấp kết quả tìm kiếm đã được làm nổi bật sẵn sàng để hiển thị.
Cách làm nổi bật kết quả tìm kiếm Java – Đánh chỉ mục Bất đồng bộ
Khi xử lý hàng ngàn tệp, việc chặn luồng chính là không mong muốn. Đánh chỉ mục bất đồng bộ cho phép engine làm việc ở nền.
Bước 1: Thiết lập chỉ mục với các trình nghe sự kiện
import com.groupdocs.search.*;
import com.groupdocs.search.events.*;
public class AsynchronousIndexingFeature {
public static void main(String[] args) {
String indexFolder = "YOUR_DOCUMENT_DIRECTORY/AsynchronousIndexing";
String documentsFolder = YOUR_DOCUMENT_DIRECTORY; // Replace with actual directory path
Index index = new Index(indexFolder);
// Handle errors and status changes
index.getEvents().ErrorOccurred.add(new EventHandler<IndexErrorEventArgs>() {
@Override
public void invoke(Object sender, IndexErrorEventArgs args) {
System.out.println(args.getMessage());
}
});
index.getEvents().StatusChanged.add(new EventHandler<BaseIndexEventArgs>() {
@Override
public void invoke(Object sender, BaseIndexEventArgs args) {
if (args.getStatus() != IndexStatus.Ready || args.getStatus() == IndexStatus.Failed) {
System.out.println("Indexing completed.");
}
}
});
Bước 2: Kích hoạt chế độ bất đồng bộ và bắt đầu đánh chỉ mục
// Set up async indexing options
IndexingOptions options = new IndexingOptions();
options.setAsync(true);
// Add documents asynchronously
index.add(documentsFolder, options);
}
}
Trong khi chỉ mục đang được xây dựng, ứng dụng của bạn vẫn có thể tiếp tục phục vụ các yêu cầu khác. Khi sự kiện StatusChanged báo Ready, bạn có thể an toàn thực hiện tìm kiếm và nhận kết quả tìm kiếm đã được làm nổi bật Java.
Cách đánh chỉ mục tài liệu java – Mẹo Thực tế
- Kích thước lô: Đối với các bộ sưu tập lớn, chia thư mục thành các lô nhỏ hơn để tránh tăng đột biến bộ nhớ.
- Bộ lọc tệp: Sử dụng
IndexingOptions.setFileExtensionsđể chỉ bao gồm các định dạng cần thiết (ví dụ,.pdf,.docx). - Đánh chỉ mục lại: Khi tài liệu thay đổi, gọi
index.update(documentPath)thay vì xây dựng lại toàn bộ chỉ mục.
Các lưu ý về Hiệu năng
- Bộ nhớ: Theo dõi việc sử dụng heap; tăng
-Xmxnếu bạn xử lý nhiều tệp lớn. - CPU: Đánh chỉ mục bất đồng bộ phân tán tải công việc, nhưng vẫn tiêu thụ CPU—giám sát bằng JVisualVM.
- Làm nổi bật Kết quả: Việc làm nổi bật thêm một chút chi phí xử lý; lưu cache HTML đã tạo nếu bạn cần hiển thị kết quả nhiều lần.
Câu hỏi thường gặp
Q: Tôi có thể kết hợp đánh chỉ mục đồng bộ và bất đồng bộ trong cùng một ứng dụng không?
A: Có. Sử dụng đánh chỉ mục đồng bộ cho các tập dữ liệu nhỏ, thường xuyên cập nhật và đánh chỉ mục bất đồng bộ cho việc nhập khẩu hàng loạt hoặc các công việc nền.
Q: Làm thế nào để tùy chỉnh kiểu làm nổi bật?
A: Cung cấp một triển khai DocumentHighlighter tùy chỉnh để ghi các thẻ HTML, CSS hoặc XML mong muốn quanh các thuật ngữ khớp.
Q: GroupDocs.Search hỗ trợ những loại tệp nào ngay từ đầu?
A: Văn bản, PDF, DOC/DOCX, XLS/XLSX, PPT/PPTX, HTML và nhiều loại khác thông qua các bộ phân tích tích hợp.
Q: Có thể tìm kiếm đồng thời bằng nhiều ngôn ngữ không?
A: Chắc chắn. GroupDocs.Search bao gồm các bộ phân tích đa ngôn ngữ; chỉ cần cấu hình Analyzer phù hợp khi tạo chỉ mục.
Q: Làm sao để bảo mật thư mục chỉ mục?
A: Lưu chỉ mục trong một thư mục được bảo vệ, thiết lập quyền truy cập hệ thống tệp phù hợp và cân nhắc mã hoá chỉ mục bằng các tính năng bảo mật của thư viện.
Cập nhật lần cuối: 2026-02-08
Kiểm tra với: GroupDocs.Search 25.4 for Java
Tác giả: GroupDocs