Pencarian teks penuh Java: membangun indeks dengan GroupDocs.Search

Dalam aplikasi modern yang didorong data, java full text search adalah mesin yang memungkinkan Anda menemukan informasi secara instan di antara ribuan file. Tutorial ini memandu Anda melalui setiap langkah—dari menambahkan dependensi GroupDocs.Search hingga menyempurnakan kamus alfabet—sehingga Anda dapat memberikan hasil pencarian yang cepat dan akurat dalam proyek Java apa pun.

Jawaban Cepat

  • What is “java full text search”? Ini adalah proses membangun indeks yang memungkinkan kueri teks cepat di banyak file dalam aplikasi Java.
  • Which library handles this out‑of‑the‑box? GroupDocs.Search for Java menyediakan pengindeksan siap pakai, manajemen kamus, dan eksekusi kueri.
  • Do I need a license? Versi percobaan gratis cocok untuk evaluasi; lisensi penuh diperlukan untuk penerapan produksi.
  • Can I customize character handling? Tentu saja—gunakan kamus alfabet untuk mendefinisikan tipe karakter khusus.
  • Is Maven mandatory? Maven menyederhanakan penanganan dependensi, tetapi Anda juga dapat mengunduh JAR secara langsung.

Apa itu java full text search dan mengapa mengelola kamus alfabet?

Indeks java full text search menyimpan representasi tokenisasi dari dokumen Anda, memungkinkan pencarian instan kata atau frasa. Kamus alfabet memberi tahu mesin cara memperlakukan setiap karakter (huruf, digit, simbol), yang secara langsung memengaruhi tokenisasi dan relevansi pencarian—terutama untuk simbol khusus atau aturan bahasa tertentu.

GroupDocs.Search memproses hingga 10.000 dokumen tanpa memuat semuanya ke memori, memberikan waktu kueri kurang dari satu detik. Ia menawarkan kontrol penuh atas tipe karakter, mendukung lebih dari 50 format input dan output, dan dapat diskalakan secara horizontal di banyak server, menjadikannya pilihan paling kuat untuk pencarian tingkat perusahaan.

Prasyarat

  • GroupDocs.Search for Java (rilisan terbaru).
  • Java 17 atau lebih tinggi terpasang di mesin pengembangan Anda.
  • Maven 3.6+ (atau kemampuan menambahkan JAR secara manual).

Perpustakaan, versi, dan dependensi yang diperlukan

  • GroupDocs.Search for Java – versi stabil terbaru.
  • Tidak ada perpustakaan pihak ketiga tambahan yang diperlukan untuk pengindeksan dasar.

Persyaratan penyiapan lingkungan

Pastikan Anda memiliki lingkungan yang kompatibel dengan Maven. Jika Maven belum terpasang, unduh dari situs resmi: Apache Maven.

Prasyarat pengetahuan

Keterbiasaan dengan sintaks Java dan I/O file akan membantu, tetapi panduan langkah demi langkah di bawah ini mencakup semua yang Anda perlukan.

Menyiapkan GroupDocs.Search untuk Java

Konfigurasi Maven

Tambahkan repositori dan dependensi ke file 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>

Unduhan langsung

Jika Anda lebih memilih tidak menggunakan Maven, dapatkan JAR terbaru dari halaman rilis resmi: GroupDocs.Search for Java releases.

Langkah-langkah memperoleh lisensi

  1. Free trial – Mulai dengan percobaan untuk menjelajahi semua fitur.
  2. Temporary license – Minta kunci sementara untuk pengujian yang lebih lama.
  3. Full license – Beli lisensi produksi untuk penggunaan tak terbatas.

Inisialisasi dan penyiapan dasar

Buat instance Index yang menunjuk ke folder tempat indeks pencarian akan disimpan:

import com.groupdocs.search.*;

public class SearchIndexSetup {
    public static void main(String[] args) {
        String indexFolder = "YOUR_DOCUMENT_DIRECTORY\\Index";
        Index index = new Index(indexFolder);
    }
}

Panduan Implementasi

Berikut adalah panduan lengkap operasi paling umum yang akan Anda lakukan saat membangun solusi java full text search.

Membuat atau membuka indeks

Kelas Index adalah objek inti yang mewakili koleksi yang dapat dicari yang disimpan di disk.

import com.groupdocs.search.*;

String indexFolder = "YOUR_DOCUMENT_DIRECTORY\\Index";
Index index = new Index(indexFolder);
  • Parameters: indexFolder – jalur tempat file indeks berada.
  • Purpose: Menyiapkan lingkungan pencarian untuk pengindeksan dan kueri selanjutnya.

Mengekspor kamus alfabet ke file

Objek AlphabetDictionary menyimpan pemetaan tipe karakter. Mengekspornya memungkinkan Anda menggunakan kembali atau menganalisis konfigurasi nanti.

import com.groupdocs.search.dictionaries.*;

String fileName = "YOUR_OUTPUT_DIRECTORY\\Alphabet.dat";
index.getDictionaries().getAlphabet().exportDictionary(fileName);
  • Parameters: fileName – file tujuan untuk kamus yang diekspor.

Menghapus kamus alfabet

Setel ulang kamus ke keadaan default sebelum menerapkan aturan khusus:

import com.groupdocs.search.dictionaries.*;

if (index.getDictionaries().getAlphabet().getCount() > 0) {
    index.getDictionaries().getAlphabet().clear();
}
  • Purpose: Menghapus semua tipe karakter yang sebelumnya didefinisikan, memastikan keadaan bersih.

Mengimpor kamus alfabet dari file

Pulihkan konfigurasi kamus yang sebelumnya disimpan:

import com.groupdocs.search.dictionaries.*;

index.getDictionaries().getAlphabet().importDictionary(fileName);
  • Parameters: fileName – jalur ke file .dat yang berisi kamus.

Menetapkan tipe karakter dalam kamus alfabet

Enum CharacterType menentukan bagaimana karakter diinterpretasikan selama tokenisasi. Sesuaikan cara karakter tertentu diperlakukan selama tokenisasi. Nilai CharacterType.Blended memberi tahu mesin untuk memperlakukan tanda hubung sebagai bagian dari kata, bukan sebagai pemisah.

import com.groupdocs.search.dictionaries.*;

if (index.getDictionaries().getAlphabet().getCharacterType('-') != CharacterType.Blended) {
    index.getDictionaries().getAlphabet().setRange(new char[] { '-' }, CharacterType.Blended);
}
  • Parameters: Karakter ('-') dan CharacterType barunya.
  • Why it matters: Menyesuaikan tipe karakter meningkatkan relevansi pencarian untuk istilah ber‑tanda hubung, ID, atau simbol khusus.

Mengindeks dokumen dari folder

Tambahkan semua file dalam direktori ke indeks pencarian dalam satu operasi:

import com.groupdocs.search.*;

String documentsFolder = "YOUR_DOCUMENT_DIRECTORY";
index.add(documentsFolder);
  • Parameters: documentsFolder – folder yang berisi dokumen yang ingin Anda indeks.

Mencari dalam indeks

Kelas SearchResult berisi daftar dokumen yang cocok dan cuplikan yang dikembalikan oleh kueri. Jalankan kueri dan dapatkan hasil yang cocok:

import com.groupdocs.search.results.*;

String query = "Elliot-Murray-Kynynmound";
SearchResult result = index.search(query);
  • Parameters: query – teks yang Anda cari.
  • Result: Objek SearchResult yang berisi dokumen yang cocok dan cuplikan.
  • Content management systems (CMS): Mempercepat pengambilan artikel dan aset.
  • Legal document repositories: Menemukan klausa atau referensi kasus secara instan.
  • Research libraries: Mengindeks ribuan makalah untuk pencarian kata kunci instan.
  • E‑commerce catalogs: Meningkatkan pencarian produk dengan tokenisasi khusus.
  • Customer support portals: Memungkinkan agen menemukan tiket atau artikel basis pengetahuan yang relevan dengan cepat.

Pertimbangan kinerja

  • Incremental updates: Mengindeks ulang hanya file baru atau yang berubah untuk menjaga indeks tetap segar tanpa membangun ulang penuh.
  • Query optimization: Jaga kueri tetap singkat; hindari pencarian wildcard yang terlalu luas.
  • Resource monitoring: Pantau penggunaan memori selama pengindeksan batch besar—sesuaikan ukuran heap JVM jika diperlukan.
  • Dictionary size: Ekspor/impor kamus alfabet hanya saat Anda memodifikasinya; I/O yang tidak perlu dapat memperlambat proses start‑up.

Pertanyaan yang sering diajukan

Q: Apa saja prasyarat untuk menggunakan GroupDocs.Search?
A: Instal Java 17+, Maven 3.6+ (atau unduh JAR), dan tambahkan dependensi GroupDocs.Search.

Q: Bagaimana cara memperoleh lisensi untuk penggunaan produksi?
A: Mulai dengan percobaan gratis, minta kunci sementara untuk pengujian yang lebih lama, kemudian beli lisensi penuh dari portal GroupDocs.

Q: Bisakah saya menyesuaikan tipe karakter dalam kamus alfabet?
A: Ya—gunakan metode setRange atau set untuk menetapkan nilai CharacterType khusus ke karakter atau rentang apa pun.

Q: Apakah memungkinkan untuk mengekspor dan mengimpor kamus alfabet?
A: Tentu saja—gunakan metode exportDictionary dan importDictionary untuk menyimpan atau berbagi konfigurasi kamus.

Q: Versi apa yang digunakan untuk menguji panduan ini?
A: Contoh-contoh telah diverifikasi dengan GroupDocs.Search for Java versi 25.4.


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

Tutorial Terkait