Cara Mengonfigurasi GroupDocs Search Network untuk Java

Di lingkungan digital yang bergerak cepat saat ini, keterampilan configure groupdocs search network sangat penting bagi organisasi mana pun yang perlu mencari di antara jutaan dokumen dengan cepat dan dapat diandalkan. Jaringan pencarian yang terkonfigurasi dengan baik menyebarkan beban indeksasi dan kueri ke beberapa node JVM, menjaga waktu respons tetap rendah, dan menjamin ketersediaan tinggi. Tutorial ini memandu Anda melalui setiap langkah— mulai dari penyiapan Maven dan aktivasi lisensi hingga penyebaran node, berlangganan acara, pengindeksan dokumen, dan bahkan pencarian berbasis gambar— sehingga Anda dapat membangun jaringan GroupDocs.Search yang siap produksi di Java.

Jawaban Cepat

  • Apa tujuan utama jaringan pencarian? Untuk mendistribusikan beban indeksasi dan kueri ke beberapa node demi skalabilitas dan keandalan yang lebih baik.
  • Port mana yang digunakan GroupDocs.Search secara default? Contoh ini menggunakan port 49120, tetapi Anda dapat memilih port bebas mana saja.
  • Bisakah saya menambah atau menghapus node tanpa downtime? Ya—node dapat dideploy atau dihentikan secara dinamis.
  • Apakah saya memerlukan lisensi untuk produksi? Lisensi penuh diperlukan untuk penggunaan produksi; lisensi percobaan tersedia untuk evaluasi.
  • Apakah pencarian gambar didukung secara langsung? Ya—GroupDocs.Search menyediakan perbandingan hash gambar bawaan.

Apa itu Jaringan Pencarian?

Sebuah SearchNetworkNode adalah node individual dalam klaster yang menyimpan salinan indeks bersama dan memproses permintaan pencarian. Sebuah jaringan pencarian adalah kumpulan instance SearchNetworkNode yang saling terhubung yang berbagi informasi indeksasi dan merespons kueri secara kolaboratif. Arsitektur ini memungkinkan Anda menangani koleksi dokumen yang sangat besar sambil menjaga waktu respons tetap rendah, dan memungkinkan failover otomatis jika sebuah node offline.

Mengapa Menggunakan GroupDocs.Search untuk Java?

Lengkapi aplikasi Java Anda dengan mesin pencari yang dapat configure groupdocs search network dalam hitungan menit, berskala horizontal, dan mendukung lebih dari 30 format file—termasuk PDF, DOCX, XLSX, PPTX, dan tipe gambar umum. Benchmark menunjukkan bahwa klaster tiga node dapat mengindeks 500.000 dokumen dalam kurang dari 30 menit pada perangkat keras server standar, sementara latensi kueri tetap di bawah 200 ms bahkan di beban bersamaan yang berat.

Prasyarat

  • JDK 8+ terpasang pada setiap mesin yang akan menjalankan node.
  • Sebuah IDE seperti IntelliJ IDEA atau Eclipse untuk memudahkan manajemen proyek.
  • Maven untuk resolusi dependensi.
  • Pengetahuan dasar tentang jaringan Java (port TCP, firewall) dan konsep multithreading.

Perpustakaan dan Dependensi yang Diperlukan

Tambahkan repositori GroupDocs dan dependensi ke pom.xml Anda:

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

Atau, unduh versi terbaru dari GroupDocs.Search for Java releases.

Menyiapkan GroupDocs.Search untuk Java

Instalasi via Maven

Potongan kode Maven di atas secara otomatis menambahkan pustaka ke proyek Anda.

Akuisisi Lisensi

  • Free Trial – jelajahi fitur inti tanpa kartu kredit.
  • Temporary License – periode pengujian yang diperpanjang untuk pilot internal.
  • Full License – siap produksi, penggunaan tak terbatas, dan dukungan prioritas.

Inisialisasi dan Penyiapan Dasar

Kelas SearchNetworkDeployment mengatur pembuatan dan manajemen klaster pencarian, menangani siklus hidup node dan sumber daya bersama. Sebelum Anda dapat berinteraksi dengan node mana pun, Anda harus membuat objek SearchNetworkDeployment dan menunjukannya ke folder indeks bersama. Blok kode berikut (dipertahankan dari tutorial asli) menunjukkan bootstrap minimal:

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.");
    }
}

Panduan Implementasi

Sekarang kami akan menyelami setiap tugas inti, menggunakan penjelasan langkah demi langkah yang jelas sebelum placeholder kode asli.

Cara Menyebarkan Node dalam Jaringan Pencarian

Menyebarkan beberapa node menyebarkan beban kerja dan meningkatkan toleransi kesalahan. Sebuah SearchNetworkNode mewakili sebuah instance JVM individual yang berpartisipasi dalam klaster pencarian, menangani permintaan indeksasi dan kueri. Dengan meluncurkan beberapa node pada port berurutan, Anda menciptakan jaringan yang tangguh di mana setiap node dapat melayani panggilan klien dan berbagi indeks bersama.

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.");
    }
}

Cara Berlangganan Acara

Berlangganan acara memberi Anda wawasan langsung tentang kesehatan node, kemajuan indeksasi, dan kesalahan. Kelas SearchNetworkEvents menyediakan sekumpulan callback yang dipicu untuk tindakan signifikan seperti penyelesaian indeksasi, kegagalan node, atau notifikasi khusus. Mendaftarkan listener pada node master atau worker memungkinkan pemantauan waktu nyata dan respons otomatis untuk menjaga jaringan beroperasi dengan lancar.

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.");
    }
}

Cara Mengindeks Dokumen

Indeksasi yang efisien adalah tulang punggung hasil pencarian yang cepat. Ketika Anda menambahkan direktori ke node master, mesin memindai setiap file, mengekstrak konten yang dapat dicari, dan menyimpannya dalam struktur indeks bersama. Proses ini dapat berjalan secara inkremental, memperbarui hanya file yang berubah, yang mengurangi beban I/O dan memastikan kueri selalu mencerminkan versi dokumen terbaru.

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.");
    }
}

Cara Melakukan Pencarian Gambar

GroupDocs.Search mendukung perbandingan hash gambar, memungkinkan Anda menemukan aset yang secara visual mirip. Kelas SearchImage membungkus file gambar dan menghitung hash perseptual yang dapat dicocokkan dengan hash yang disimpan dalam indeks. Dengan menentukan perbedaan hash maksimum, Anda mengontrol toleransi kesamaan visual, memungkinkan penemuan duplikat atau gambar terkait secara andal di seluruh repositori.

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);
    }
}

Cara Mengonfigurasi Port Jaringan

Jika lingkungan Anda sudah menggunakan port 49120, Anda dapat mengubahnya ke port TCP bebas mana saja. Parameter basePort menentukan nomor port awal untuk klaster, dan setiap node berikutnya secara otomatis menambah nilai ini. Pastikan port yang dipilih terbuka di firewall Anda, tidak dipakai layanan lain, dan dikonfigurasi secara konsisten di semua node untuk menjaga komunikasi yang mulus.

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

Masalah Umum & Pemecahan Masalah

GejalaPenyebab KemungkinanSolusi
Node gagal memulaiKonflik portPilih basePort yang berbeda dan perbarui aturan firewall.
Indeksasi lambatBandwidth I/O tidak memadaiGunakan penyimpanan SSD dan aktifkan indeksasi inkremental.
Berlangganan acara tidak terpicuRegistrasi handler acara tidak adaPastikan SearchNetworkEvents.subscribe(node) dipanggil sebelum indeksasi dimulai.
Pencarian gambar tidak menghasilkan hasilPerbedaan hash terlalu rendahTingkatkan perbedaan hash yang diizinkan (mis., dari 4 ke 8).

Pertanyaan yang Sering Diajukan

Q: Bagaimana cara mengoptimalkan kinerja indeksasi dalam jaringan GroupDocs.Search?
A: Gunakan indeksasi inkremental, simpan indeks pada SSD cepat, dan alokasikan memori heap yang cukup untuk JVM.

Q: Bisakah saya menambah atau menghapus node tanpa me-restart seluruh jaringan pencarian?
A: Ya—node dapat dideploy atau dihentikan secara dinamis. Setelah menambahkan node, panggil SearchNetworkDeployment.deploy lagi untuk menyegarkan tampilan klaster.

Q: Bagaimana berlangganan acara meningkatkan manajemen jaringan?
A: Acara yang berlangganan memberikan peringatan waktu nyata untuk perubahan status node, kemajuan indeksasi, dan kesalahan, memungkinkan pemecahan masalah proaktif.

Q: Apakah memungkinkan mencari berbagai format dokumen secara bersamaan?
A: Tentu saja. GroupDocs.Search mendukung PDF, Word, Excel, PowerPoint, gambar, dan banyak format lainnya dalam satu kueri.

Q: Seberapa aman data dalam jaringan GroupDocs.Search?
A: Keamanan tergantung pada infrastruktur Anda. Terapkan SSL/TLS untuk komunikasi antar node, batasi akses jaringan, dan ikuti praktik terbaik untuk perlindungan data.


Terakhir Diperbarui: 2026-06-27
Diuji Dengan: GroupDocs.Search 25.4 for Java
Penulis: GroupDocs

Tutorial Terkait