Cách cấu hình GroupDocs Search Network cho Java

Trong môi trường kỹ thuật số ngày nay đang phát triển nhanh, kỹ năng configure groupdocs search network là thiết yếu cho bất kỳ tổ chức nào cần tìm kiếm qua hàng triệu tài liệu một cách nhanh chóng và đáng tin cậy. Một mạng tìm kiếm được cấu hình tốt sẽ phân phối công việc lập chỉ mục và truy vấn trên nhiều nút JVM, giữ thời gian phản hồi thấp và đảm bảo tính sẵn sàng cao. Hướng dẫn này sẽ dẫn bạn qua từng bước — từ thiết lập Maven và kích hoạt giấy phép đến triển khai nút, đăng ký sự kiện, lập chỉ mục tài liệu và thậm chí tìm kiếm dựa trên hình ảnh — để bạn có thể xây dựng một mạng GroupDocs.Search sẵn sàng cho môi trường sản xuất bằng Java.

Câu trả lời nhanh

  • Mục đích chính của một mạng tìm kiếm là gì? Để phân phối tải lập chỉ mục và truy vấn trên nhiều nút nhằm cải thiện khả năng mở rộng và độ tin cậy.
  • Cổng nào mà GroupDocs.Search sử dụng mặc định? Ví dụ sử dụng cổng 49120, nhưng bạn có thể chọn bất kỳ cổng nào còn trống.
  • Tôi có thể thêm hoặc loại bỏ các nút mà không gây gián đoạn không? Có—các nút có thể được triển khai hoặc ngừng hoạt động một cách động.
  • Tôi có cần giấy phép cho môi trường sản xuất không? Cần giấy phép đầy đủ cho việc sử dụng trong sản xuất; giấy phép dùng thử có sẵn để đánh giá.
  • Tìm kiếm hình ảnh có được hỗ trợ ngay không? Có—GroupDocs.Search cung cấp so sánh hash hình ảnh tích hợp.

Mạng Tìm kiếm là gì?

Một SearchNetworkNode là một nút riêng lẻ trong cụm mà lưu trữ một bản sao của chỉ mục chung và xử lý các yêu cầu tìm kiếm. Một search network là tập hợp các SearchNetworkNode được kết nối với nhau, chia sẻ thông tin lập chỉ mục và trả lời các truy vấn một cách hợp tác. Kiến trúc này cho phép bạn xử lý các bộ sưu tập tài liệu khổng lồ trong khi giữ thời gian phản hồi thấp, và nó cho phép tự động chuyển đổi khi một nút bị ngắt kết nối.

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

Trang bị cho ứng dụng Java của bạn một công cụ tìm kiếm có thể configure groupdocs search network trong vài phút, mở rộng theo chiều ngang và hỗ trợ hơn 30 định dạng tệp — bao gồm PDF, DOCX, XLSX, PPTX và các loại hình ảnh phổ biến. Các kết quả benchmark cho thấy một cụm ba nút có thể lập chỉ mục 500.000 tài liệu trong dưới 30 phút trên phần cứng máy chủ tiêu chuẩn, trong khi độ trễ truy vấn duy trì dưới 200 ms ngay cả khi tải đồng thời cao.

Yêu cầu trước

  • JDK 8+ được cài đặt trên mọi máy sẽ chạy một nút.
  • Một IDE như IntelliJ IDEA hoặc Eclipse để quản lý dự án dễ dàng.
  • Maven để giải quyết phụ thuộc.
  • Kiến thức cơ bản về mạng Java (cổng TCP, tường lửa) và các khái niệm đa luồng.

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

Thêm kho lưu trữ GroupDocs và phụ thuộc vào 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>

Hoặc tải phiên bản mới nhất từ GroupDocs.Search for Java releases.

Cài đặt GroupDocs.Search cho Java

Cài đặt qua Maven

Đoạn mã Maven ở trên sẽ tự động kéo thư viện vào dự án của bạn.

Nhận giấy phép

  • Free Trial – khám phá các tính năng cốt lõi mà không cần thẻ tín dụng.
  • Temporary License – thời gian thử nghiệm kéo dài cho các dự án nội bộ.
  • Full License – sẵn sàng cho sản xuất, không giới hạn sử dụng và hỗ trợ ưu tiên.

Khởi tạo và Cấu hình Cơ bản

Lớp SearchNetworkDeployment điều phối việc tạo và quản lý cụm tìm kiếm, xử lý vòng đời các nút và tài nguyên chung. Trước khi bạn có thể tương tác với bất kỳ nút nào, bạn phải tạo một đối tượng SearchNetworkDeployment và chỉ định thư mục chỉ mục chung. Khối mã sau (giữ nguyên từ hướng dẫn gốc) cho thấy cách khởi động tối thiểu:

import com.groupdocs.search.*;

public class SearchSetup {
    public static void main(String[] args) {
        // Create an instance of Index with the path to store index data.
        String indexPath = "path/to/index";
        Index index = new Index(indexPath);
        
        System.out.println("GroupDocs.Search initialized successfully.");
    }
}

Hướng dẫn triển khai

Chúng tôi sẽ đi sâu vào từng nhiệm vụ cốt lõi, sử dụng các giải thích rõ ràng, từng bước trước các placeholder mã gốc.

Cách triển khai các nút trong một Mạng Tìm kiếm

Triển khai nhiều nút sẽ phân phối khối lượng công việc và cải thiện khả năng chịu lỗi. Một SearchNetworkNode đại diện cho một phiên bản JVM riêng lẻ tham gia vào cụm tìm kiếm, xử lý các yêu cầu lập chỉ mục và truy vấn. Bằng cách khởi chạy một số nút trên các cổng liên tiếp, bạn tạo ra một mạng lưới bền vững, trong đó mỗi nút có thể phục vụ các cuộc gọi của client và chia sẻ chỉ mục chung.

public class SearchNetworkDeployment {
    public static void run() {
        String basePath = "YOUR_DOCUMENT_DIRECTORY";
        int basePort = 49120; // Change if necessary.
        Configuration configuration = ConfiguringSearchNetwork.configure(basePath, basePort);

        SearchNetworkNode[] nodes = SearchNetworkDeployment.deploy(basePath, basePort, configuration);
        
        System.out.println("Deployed " + nodes.length + " search network nodes.");
    }
}

Cách đăng ký sự kiện

Đăng ký sự kiện cung cấp cho bạn cái nhìn trực tiếp về tình trạng nút, tiến độ lập chỉ mục và lỗi. Lớp SearchNetworkEvents cung cấp một tập hợp các callback được kích hoạt cho các hành động quan trọng như hoàn thành lập chỉ mục, lỗi nút hoặc thông báo tùy chỉnh. Đăng ký listener trên nút master hoặc worker cho phép giám sát thời gian thực và phản hồi tự động để duy trì mạng hoạt động trơn tru.

public class NodeEventSubscription {
    public static void run() {
        String basePath = "YOUR_DOCUMENT_DIRECTORY";
        int basePort = 49120; // Adjust if needed.
        Configuration configuration = ConfiguringSearchNetwork.configure(basePath, basePort);
        SearchNetworkNode[] nodes = SearchNetworkDeployment.deploy(basePath, basePort, configuration);

        SearchNetworkEvents.subscribe(nodes[0]);
        
        System.out.println("Subscribed to events for the master node.");
    }
}

Cách lập chỉ mục tài liệu

Lập chỉ mục hiệu quả là nền tảng cho kết quả tìm kiếm nhanh. Khi bạn thêm thư mục vào nút master, engine sẽ quét từng tệp, trích xuất nội dung có thể tìm kiếm và lưu trữ chúng trong cấu trúc chỉ mục chung. Quá trình này có thể chạy theo chế độ tăng dần, chỉ cập nhật các tệp đã thay đổi, giảm tải I/O và đảm bảo các truy vấn luôn phản ánh phiên bản tài liệu mới nhất.

public class DocumentIndexing {
    public static void run() {
        String basePath = "YOUR_DOCUMENT_DIRECTORY";
        int basePort = 49120; // Change if there is a conflict.
        Configuration configuration = ConfiguringSearchNetwork.configure(basePath, basePort);
        SearchNetworkNode[] nodes = SearchNetworkDeployment.deploy(basePath, basePort, configuration);

        IndexingDocuments.addDirectories(nodes[0], "YOUR_DOCUMENT_DIRECTORY");
        
        System.out.println("Added directories to master node's index.");
    }
}

Cách thực hiện tìm kiếm hình ảnh

GroupDocs.Search hỗ trợ so sánh hash hình ảnh, cho phép bạn tìm các tài sản có hình ảnh tương tự. Lớp SearchImage bao bọc một tệp hình ảnh và tính toán một hash cảm nhận được có thể so sánh với các hash đã lưu trong chỉ mục. Bằng cách chỉ định mức chênh lệch hash tối đa, bạn kiểm soát độ chịu lỗi của sự tương đồng hình ảnh, giúp phát hiện đáng tin cậy các hình ảnh trùng lặp hoặc liên quan trong kho lưu trữ.

public class ImageSearch {
    public static void run() {
        String basePath = "YOUR_DOCUMENT_DIRECTORY";
        int basePort = 49120; // Modify if needed.
        Configuration configuration = ConfiguringSearchNetwork.configure(basePath, basePort);
        SearchNetworkNode[] nodes = SearchNetworkDeployment.deploy(basePath, basePort, configuration);

        SearchImage searchImage = SearchImage.create("YOUR_DOCUMENT_DIRECTORY/ic_arrow_back_black_18dp.png");

        imageSearch(nodes[0], searchImage, 8);
    }
}

Cách cấu hình cổng mạng

Nếu môi trường của bạn đã sử dụng cổng 49120, bạn có thể thay đổi nó thành bất kỳ cổng TCP nào còn trống. Tham số basePort xác định số cổng bắt đầu cho cụm, và mỗi nút tiếp theo sẽ tự động tăng giá trị này. Đảm bảo cổng đã chọn mở trong tường lửa, không bị chiếm dụng bởi dịch vụ khác và được cấu hình đồng nhất trên tất cả các nút để duy trì giao tiếp liền mạch.

int customPort = 50000; // Example of a custom port.
Configuration configuration = ConfiguringSearchNetwork.configure(basePath, customPort);

Các vấn đề thường gặp & Khắc phục sự cố

Triệu chứngNguyên nhân khả dĩCách khắc phục
Các nút không khởi động đượcXung đột cổngChọn một basePort khác và cập nhật quy tắc tường lửa.
Lập chỉ mục chậmBăng thông I/O không đủSử dụng ổ SSD và bật lập chỉ mục tăng dần.
Đăng ký sự kiện không hoạt độngThiếu đăng ký trình xử lý sự kiệnĐảm bảo SearchNetworkEvents.subscribe(node) được gọi trước khi bắt đầu bất kỳ quá trình lập chỉ mục nào.
Tìm kiếm hình ảnh không trả về kết quảKhoảng cách hash quá thấpTăng khoảng cách hash cho phép (ví dụ, từ 4 lên 8).

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

Q: Làm thế nào để tối ưu hiệu suất lập chỉ mục trong mạng GroupDocs.Search?
A: Sử dụng lập chỉ mục tăng dần, lưu chỉ mục trên SSD nhanh, và cấp phát đủ bộ nhớ heap cho JVM.

Q: Tôi có thể thêm hoặc loại bỏ các nút mà không khởi động lại toàn bộ mạng tìm kiếm không?
A: Có—các nút có thể được triển khai hoặc ngừng hoạt động một cách động. Sau khi thêm một nút, gọi lại SearchNetworkDeployment.deploy để làm mới view của cụm.

Q: Đăng ký sự kiện cải thiện quản lý mạng như thế nào?
A: Các sự kiện đã đăng ký cung cấp cảnh báo thời gian thực về thay đổi trạng thái nút, tiến độ lập chỉ mục và lỗi, cho phép khắc phục sự cố một cách chủ động.

Q: Có thể tìm kiếm đồng thời nhiều định dạng tài liệu khác nhau không?
A: Hoàn toàn có thể. GroupDocs.Search hỗ trợ PDF, Word, Excel, PowerPoint, hình ảnh và nhiều định dạng khác trong một truy vấn duy nhất.

Q: Dữ liệu trong mạng GroupDocs.Search bảo mật như thế nào?
A: Bảo mật phụ thuộc vào cơ sở hạ tầng của bạn. Triển khai SSL/TLS cho giao tiếp giữa các nút, hạn chế quyền truy cập mạng và tuân thủ các thực hành tốt nhất về bảo vệ dữ liệu.

Cập nhật lần cuối: 2026-06-27
Kiểm tra với: GroupDocs.Search 25.4 for Java
Tác giả: GroupDocs

Hướng dẫn liên quan