Cara Mengoptimalkan Shard di GroupDocs.Search untuk Java: Panduan Komprehensif
Pencarian dokumen yang efisien sangat penting bagi pengembang dan bisnis yang mengelola kumpulan data besar atau membutuhkan pengambilan internal yang cepat. Dalam tutorial ini Anda akan belajar how to configure search network java, cara mengindeks dan mengkueri dokumen, serta langkah‑langkah tepat untuk optimize shards demi kinerja puncak. Kami juga akan membahas contoh penggunaan dunia nyata, jebakan umum, dan tip praktis untuk menjaga node pencarian Anda berjalan lancar.
Jawaban Cepat
- Apa itu optimasi shard? Ini mengatur ulang data indeks untuk mempercepat kueri dan mengurangi beban penyimpanan.
- Bagaimana cara mengkonfigurasi jaringan pencarian? Tentukan direktori dasar dan port, lalu deploy node menggunakan API yang disediakan.
- Bagaimana cara melakukan pencarian teks? Gunakan
TextSearchInNetwork.searchAlldengan string kueri Anda. - Bagaimana cara mengindeks dokumen di Java? Tambahkan direktori dokumen ke node master dengan
IndexingDocuments.addDirectories. - Bagaimana cara menangani konflik port? Ubah variabel
basePortke port yang belum digunakan di mesin Anda.
Cara Mengkonfigurasi Jaringan Pencarian
Configuration menyimpan semua pengaturan yang diperlukan untuk meluncurkan jaringan GroupDocs.Search, seperti lokasi folder indeks dan port komunikasi.SearchNetwork mengatur node, menangani pengindeksan dan distribusi kueri.
Muat konfigurasi pencarian Anda, tetapkan jalur dasar dokumen, pilih port yang bebas, dan mulai jaringan—semua dalam beberapa baris kode. Jawaban langsung ini menjelaskan seluruh proses dalam kurang dari 70 kata: Create a Configuration object, set basePath dan basePort, lalu panggil SearchNetwork.start(configuration). Jaringan secara otomatis akan memulai node master dan node pekerja yang diperlukan, siap menerima permintaan pengindeksan.
Definisi Anchor
Configuration adalah kelas inti yang menyimpan semua pengaturan yang diperlukan untuk meluncurkan jaringan GroupDocs.Search, seperti lokasi folder indeks dan port komunikasi.
Untuk menghindari kesalahan “port already in use” yang menakutkan, pertama pastikan port yang dipilih bebas (mis., menggunakan netstat atau tes socket sederhana) sebelum menginisialisasi jaringan.
<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>
Cara Mengindeks Dokumen Java
IndexingDocuments adalah kelas utilitas yang mempermudah penambahan beberapa direktori ke node pencarian dan memicu pipeline pengindeksan.
Tambahkan folder dokumen Anda ke node master, lalu biarkan pengindeks merayapi mereka. Direct answer: Panggil IndexingDocuments.addDirectories(masterNode, List.of("C:/Docs", "C:/MoreDocs")) dan kemudian panggil masterNode.index(); mesin akan membuat shard yang dapat dicari untuk setiap folder yang Anda berikan. Pendekatan ini berskala secara horizontal—tambahkan lebih banyak node, dan metode yang sama akan mendistribusikan beban kerja secara otomatis.
Definisi Anchor
IndexingDocuments adalah kelas utilitas yang mempermudah penambahan beberapa direktori ke node pencarian dan memicu pipeline pengindeksan.
String basePath = "YOUR_DOCUMENT_DIRECTORY/OptimizingShards/";
int basePort = 49132; // Adjust if necessary
Configuration configuration = ConfiguringSearchNetwork.configure(basePath, basePort);
Cara Melakukan Pencarian Teks
TextSearchInNetwork menyediakan metode pembantu statis untuk menyiarkan kueri teks ke setiap node dalam jaringan dan mengagregasi hasilnya.SearchResult menyimpan ID dokumen yang cocok, cuplikan, dan skor relevansi.
Jalankan kueri di semua shard dengan satu pemanggilan metode. Direct answer: Gunakan TextSearchInNetwork.searchAll("your query", searchNetwork); metode ini mengembalikan koleksi objek SearchResult yang berisi ID dokumen, cuplikan, dan skor relevansi. Anda dapat memfilter hasil lebih lanjut berdasarkan bahasa, tipe file, atau metadata khusus tanpa menulis kode tambahan.
Definisi Anchor
TextSearchInNetwork menyediakan metode pembantu statis yang menyiarkan kueri teks ke setiap node dalam jaringan dan mengagregasi hasilnya.
String basePath = "YOUR_DOCUMENT_DIRECTORY/OptimizingShards/";
int basePort = 49132; // Change this if you encounter a network port issue
Cara Menangani Konflik Port
Jika port default (49132) sedang digunakan, cukup pilih port bebas lain dan perbarui field basePort sebelum memulai jaringan. Direct answer: Ubah int basePort = 49132; menjadi nilai yang belum digunakan seperti 49133, rebuild, dan restart; jaringan akan terikat ke port baru tanpa memengaruhi node yang ada.
Tip pro: Simpan file konfigurasi kecil (mis., search-config.properties) sehingga Anda dapat mengubah port tanpa harus meng-compile ulang.
Configuration configuration = ConfiguringSearchNetwork.configure(basePath, basePort);
Prasyarat
Sebelum kita mulai, pastikan Anda memiliki prasyarat berikut:
Perpustakaan, Versi, dan Dependensi yang Diperlukan
Untuk mengimplementasikan solusi ini, sertakan perpustakaan GroupDocs.Search menggunakan Maven dengan menambahkan konfigurasi berikut ke file pom.xml Anda:
SearchNetworkNode[] nodes = SearchNetworkDeployment.deploy(basePath, basePort, configuration);
SearchNetworkNode masterNode = nodes[0];
Atau, unduh versi terbaru dari GroupDocs.Search for Java releases.
Persyaratan Penyiapan Lingkungan
- Java Development Kit (JDK) 8 atau lebih baru.
- Izin jaringan yang memungkinkan binding ke
basePortyang dipilih. - Ruang disk yang cukup untuk file indeks (setiap shard dapat menempati ~10 MB per 1.000 dokumen).
Prasyarat Pengetahuan
Pemahaman dasar tentang Java, pemrograman berorientasi objek, dan penanganan pengecualian akan membantu Anda mengikuti contoh dengan lancar.
Menyiapkan GroupDocs.Search untuk Java
Untuk mulai menggunakan GroupDocs.Search dalam proyek Anda, ikuti langkah-langkah berikut:
- Add the Dependency: Seperti ditunjukkan di atas, tambahkan dependensi Maven yang diperlukan ke proyek Anda atau unduh langsung dari halaman rilis.
- License Acquisition:
- Free trial – tidak memerlukan kunci lisensi, tetapi penggunaan dibatasi hingga 500 dokumen per hari.
- Temporary license – minta kunci percobaan 30‑hari dari GroupDocs Temporary License.
- Full license – beli lisensi produksi untuk akses tak terbatas dan dukungan prioritas.
- Basic Initialization and Setup:
Inisialisasi konfigurasi menggunakan kelasConfiguration, mengatur jalur dasar untuk dokumen dan menentukan nomor port:
SearchNetworkNodeEvents.subscribe(masterNode);
Panduan Implementasi
Sekarang mari kita jelajahi implementasi fitur utama menggunakan GroupDocs.Search Java.
Fitur: Mengkonfigurasi Jaringan Pencarian
Overview: Menyiapkan jaringan pencarian melibatkan mendefinisikan direktori dokumen Anda dan mengkonfigurasinya dengan port tertentu untuk komunikasi antar node.
Langkah 1: Tentukan Direktori Dokumen dan Port
DocumentDirectory adalah penampung sederhana untuk jalur absolut folder yang ingin Anda indeks. Berikan satu atau lebih jalur ke konfigurasi.
IndexingDocuments.addDirectories(masterNode, "YOUR_DOCUMENT_DIRECTORY/DocumentsPath");
IndexingDocuments.addDirectories(masterNode, "YOUR_DOCUMENT_DIRECTORY/DocumentsPath2");
Langkah 2: Konfigurasikan Jaringan Pencarian
Buat objek konfigurasi menggunakan jalur yang telah ditentukan:
TextSearchInNetwork.searchAll(masterNode, "ligula", false);
Fitur: Menyebarkan Node Jaringan Pencarian
Overview: Menyebarkan node untuk menangani pencarian dokumen secara efisien di seluruh jaringan Anda.
Langkah 1: Deploy Node Menggunakan Konfigurasi
Deploy node jaringan pencarian dan identifikasi node master untuk manajemen terpusat:
public static void optimizeShards(SearchNetworkNode node) {
Indexer indexer = node.getIndexer();
OptimizeOptions options = new OptimizeOptions();
indexer.optimize(options);
}
optimizeShards(masterNode);
// Perform a second text search to observe optimization effects
TextSearchInNetwork.searchAll(masterNode, "ligula", false);
Fitur: Berlangganan ke Event Node Jaringan
Overview: Pantau jaringan pencarian Anda dengan berlangganan ke event yang memberi tahu Anda tentang perubahan atau tindakan penting.
Langkah 1: Berlangganan ke Event Node Master
SearchNetworkEventListener memungkinkan Anda merespons penyelesaian pengindeksan, kegagalan node, atau optimasi shard.
CODE_BLOCK_PLACEHOLDER_9_END
Fitur: Mengindeks Dokumen di Node Jaringan
Overview: Tambahkan direktori yang berisi dokumen ke proses pengindeksan untuk pencarian yang efisien.
Langkah 1: Tambahkan Direktori Dokumen ke Proses Pengindeksan
Berikan daftar jalur folder ke node master; mesin akan membuat shard terpisah untuk setiap folder, memungkinkan eksekusi kueri paralel.
CODE_BLOCK_PLACEHOLDER_10_END
Fitur: Pencarian Teks di Node Jaringan
Overview: Jalankan pencarian teks di semua dokumen terindeks dalam jaringan pencarian Anda.
Langkah 1: Lakukan Pencarian Teks
Panggil pembantu statis untuk menjalankan kueri dan mengambil dokumen yang cocok dengan skor relevansi.
CODE_BLOCK_PLACEHOLDER_11_END
Fitur: Mengoptimalkan Shard
Overview: Tingkatkan kinerja dengan mengoptimalkan shard dalam pengindeks node jaringan pencarian Anda.
Langkah 1: Optimalkan Shard Pengindeks
Optimalkan shard untuk meningkatkan efisiensi pencarian (di sinilah how to optimize shards benar‑benar penting):
CODE_BLOCK_PLACEHOLDER_12_END
Aplikasi Praktis
GroupDocs.Search untuk Java dapat diterapkan dalam berbagai skenario dunia nyata, masing‑masing mendapat manfaat dari optimasi shard:
- Enterprise Document Management – Menangani arsip 10 TB+ dengan waktu kueri sub‑detik setelah optimasi shard.
- E‑commerce Platforms – Menjalankan pencarian produk di 1 juta SKU, mengurangi latensi hingga 45 % ketika shard dioptimalkan.
- Legal Firms – Mengambil file kasus dari repositori 200 GB dalam kurang dari 200 ms.
- Library Systems – Mendukung pencarian katalog untuk 500 k buku digital dengan penggunaan memori yang efisien.
- Content Management Systems (CMS) – Memungkinkan penemuan konten instan untuk penyebaran multi‑situs dengan lebih dari 2 juta halaman.
Pertimbangan Kinerja
Untuk memastikan kinerja optimal dari implementasi GroupDocs.Search Anda:
- Regularly optimize shards – Menjalankan
optimizeShards()setelah setiap 10 GB data baru mengurangi waktu respons kueri sebesar 30‑50 %. - Monitor memory usage – Jaga heap JVM di bawah 75 % dari RAM fisik; aktifkan G1GC untuk indeks besar.
- Use incremental indexing – Tambahkan hanya file yang berubah untuk menghindari pengindeksan ulang penuh.
- Leverage multi‑node scaling – Tambahkan node pekerja untuk mendistribusikan shard; setiap node tambahan dapat meningkatkan throughput sekitar ~20 % untuk beban kerja baca‑berat.
Masalah Umum dan Solusinya
| Masalah | Gejala | Solusi |
|---|---|---|
| Konflik port saat startup | java.net.BindException: Address already in use | Ubah basePort ke nilai yang belum digunakan; verifikasi dengan netstat -ano. |
| Kesalahan out‑of‑memory selama optimasi | java.lang.OutOfMemoryError: Java heap space | Tingkatkan flag JVM -Xmx atau jalankan optimasi pada node khusus dengan RAM lebih banyak. |
| Dokumen hilang dalam hasil pencarian | Tidak ada hasil yang dikembalikan setelah pengindeksan | Pastikan direktori ditambahkan dengan benar melalui IndexingDocuments.addDirectories dan bahwa masterNode.index() selesai tanpa pengecualian. |
| Shard usang setelah penghapusan massal | File yang dihapus masih muncul | Jalankan optimizeShards() untuk menggabungkan segmen dan membersihkan tombstone. |
Pertanyaan yang Sering Diajukan
Q: Bagaimana optimasi shard memengaruhi kecepatan kueri?
A: Mengoptimalkan shard memadatkan indeks, mengurangi I/O disk, dan biasanya menghasilkan respons kueri 30‑50 % lebih cepat untuk dataset besar.
Q: Apakah aman menjalankan optimizeShards pada node yang aktif?
A: Ya, operasi ini dirancang untuk berjalan tanpa downtime, tetapi penjadwalan selama periode lalu lintas rendah disarankan untuk indeks yang lebih besar dari 20 GB.
Q: Bisakah saya menyesuaikan OptimizeOptions?
A: Tentu saja. Anda dapat mengatur parameter seperti maxSegmentSize atau mergeFactor untuk menyempurnakan proses optimasi.
Q: Apa yang harus saya lakukan jika menemukan IOException selama optimasi?
A: Verifikasi izin sistem file, pastikan cukup ruang disk bebas, dan pastikan tidak ada proses lain yang mengunci file indeks.
Q: Apakah mengoptimalkan shard juga mengembalikan ruang dokumen yang dihapus?
A: Ya, optimizer menggabungkan segmen dan menghapus tombstone, membebaskan ruang yang ditempati dokumen yang dihapus.
Kesimpulan
Dengan mengikuti panduan komprehensif ini, Anda kini tahu cara configure search network java, mengindeks dokumen, menjalankan kueri teks, dan yang paling penting, optimize shards untuk menjaga kinerja pencarian tetap tajam. Terapkan pola ini pada solusi pencarian perusahaan berbasis Java apa pun, dan Anda akan melihat peningkatan yang terukur dalam latensi, skalabilitas, dan pemanfaatan sumber daya. Untuk langkah selanjutnya, jelajahi fitur lanjutan seperti analyzer khusus, pencarian berfaset, dan integrasi dengan penyedia penyimpanan cloud.
Last Updated: 2026-05-17
Tested With: GroupDocs.Search 25.4 for Java
Author: GroupDocs