Cara Mencari dengan Regex di Java menggunakan GroupDocs.Search
Mencari melalui ribuan dokumen teks dapat terasa seperti mencari jarum dalam tumpukan jerami. Cara melakukan pencarian regex di Java menjadi mudah ketika Anda menggabungkan mesin ekspresi reguler yang kuat dari bahasa tersebut dengan GroupDocs.Search, sebuah perpustakaan yang membangun indeks untuk pencocokan pola yang sangat cepat. Dalam beberapa menit ke depan Anda akan melihat cara menginstal perpustakaan, membuat indeks, menambahkan file, dan menjalankan kueri regex berbasis teks sederhana serta berbasis objek. Pada akhirnya Anda akan siap menyematkan pencarian berbasis pola yang kuat ke dalam aplikasi Java apa pun.
Jawaban Cepat
- Apa perpustakaan utama? GroupDocs.Search for Java
- Bagaimana cara memulai? Tambahkan dependensi Maven dan instantiate sebuah objek
Index - Bisakah saya memfilter konten dengan regex? Ya – gunakan kueri regex untuk skenario pemfilteran konten
- Apakah saya memerlukan lisensi? Trial gratis atau lisensi sementara diperlukan untuk penggunaan produksi
- Versi JDK mana yang didukung? Java 8 atau lebih tinggi
Apa itu Pencarian Regex?
Pencarian regex memungkinkan Anda menemukan pola seperti tanggal, alamat email, atau karakter berulang di banyak file dalam satu operasi. Ini mengubah kueri teks biasa menjadi pemindai berbasis aturan yang kuat yang dapat mengekstrak atau memblokir konten secara langsung.
Mengapa Menggunakan GroupDocs.Search untuk Pencarian Regex?
GroupDocs.Search mengindeks dokumen sekali dan kemudian menggunakan kembali indeks tersebut untuk setiap kueri, memberikan pencarian hingga 10× lebih cepat dibandingkan pemindaian file mentah. Perpustakaan ini mendukung lebih dari 30 format file (PDF, DOCX, XLSX, PPTX, TXT, HTML, dan lainnya) dan dapat menangani file berisi ratusan halaman tanpa memuat seluruh file ke dalam memori.
Prasyarat
- Java Development Kit (JDK) 8 atau lebih tinggi
- Maven untuk manajemen dependensi
- Familiaritas dasar dengan ekspresi reguler Java
Perpustakaan dan Dependensi yang Diperlukan
Tambahkan GroupDocs.Search ke proyek Maven 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 JAR terbaru dari GroupDocs.Search for Java releases.
Akuisisi Lisensi
Dapatkan trial gratis atau lisensi sementara dari GroupDocs.License dan muat pada saat aplikasi dimulai.
Menyiapkan GroupDocs.Search untuk Java
Informasi Instalasi
- Integrasi Maven: Tambahkan repositori dan dependensi yang ditunjukkan di atas ke
pom.xmlAnda. - Unduhan Langsung: Tempatkan file JAR pada classpath proyek Anda.
- Penerapan Lisensi: Muat file lisensi saat aplikasi dimulai.
import com.groupdocs.search.*;
public class SearchSetup {
public static void main(String[] args) {
// Initialize the index by specifying a directory.
String indexFolder = "YOUR_DOCUMENT_DIRECTORY\\output\\AdvancedUsage\\Searching\\RegularExpressionSearch";
Index index = new Index(indexFolder);
System.out.println("Index created successfully at: " + indexFolder);
}
}
Komponen Inti
Kelas Index adalah komponen inti yang menyimpan token yang dapat dicari yang diekstrak dari dokumen Anda. Ini memungkinkan pencarian cepat dari istilah atau pola apa pun tanpa harus membaca ulang file asli.
Cara Membuat Indeks
Membuat indeks sangat mudah: instantiate kelas Index dengan jalur folder tempat file indeks akan disimpan. Konstruktor membuat file basis data yang diperlukan pada penggunaan pertama dan menyiapkan mesin untuk menambahkan dan mencari dokumen. Setelah dibuat, gunakan kembali indeks yang sama untuk semua kueri.
String indexFolder = "YOUR_DOCUMENT_DIRECTORY\\output\\AdvancedUsage\\Searching\\RegularExpressionSearch";
Index index = new Index(indexFolder);
Cara Menambahkan Dokumen
Untuk membuat file dapat dicari, panggil index.add dengan instance Document (atau DocumentInfo) yang menunjuk ke jalur file. Perpustakaan mem‑parsing konten, mengekstrak token, dan menyimpannya dalam indeks. Operasi ini dapat dilakukan untuk file tunggal atau batch, dan pembaruan digabungkan secara inkremental.
index.add("YOUR_DOCUMENT_DIRECTORY");
system.out.println("Documents added to the index.");
Cara Melakukan Pencarian Ekspresi Reguler dalam Bentuk Teks
RegexQuery mendefinisikan kueri pencarian berbasis ekspresi reguler. Muat sebuah RegexQuery dengan pola teks biasa dan berikan ke metode search dari Index. Mesin mengevaluasi pola terhadap token yang diindeks dan mengembalikan referensi dokumen yang cocok, membuat pencarian satu kali cepat dan sederhana.
String query1 = "^((.)\\2{1,})";
Cara Melakukan Pencarian Ekspresi Reguler dalam Bentuk Objek
RegexQuery juga dapat dibangun sebagai objek dan digunakan kembali pada banyak pencarian. Definisikan kueri sekali, konfigurasikan opsi seperti tidak sensitif huruf besar/kecil atau pencocokan fuzzy, dan panggil index.search berulang kali. Pendekatan ini meningkatkan kinerja ketika pola yang sama diterapkan pada banyak set dokumen yang berbeda.
SearchResult result1 = index.search(query1);
system.out.println("Number of occurrences found: " + result1.getDocumentCount());
Kasus Penggunaan Regex untuk Penyaringan Konten
Anda dapat menggunakan regex untuk secara otomatis memblokir atau menandai konten yang cocok dengan pola tertentu, seperti:
- Mendeteksi karakter berulang untuk penyaringan spam
- Menemukan urutan mirip kartu kredit untuk pemeriksaan privasi data
- Mengekstrak tanggal atau ID untuk pemrosesan lanjutan
Aplikasi Praktis
- Sistem Manajemen Dokumen: Menemukan kontrak, faktur, atau kebijakan berdasarkan pola (misalnya, nomor faktur).
- Moderasi Konten: Terapkan aturan regex untuk memoderasi teks yang dihasilkan pengguna di forum atau aplikasi obrolan.
- Ekstraksi Data: Mengambil data terstruktur seperti nomor pesanan dari PDF atau file Word yang tidak terstruktur.
Pertimbangan Kinerja
- Pembaruan Indeks: Panggil
index.addsetiap kali file sumber berubah untuk menjaga hasil tetap segar. - Manajemen Memori: Untuk korpus yang melebihi 1 juta dokumen, aktifkan pengindeksan inkremental untuk menjaga penggunaan heap tetap terkendali.
- Desain Regex: Jaga pola tetap singkat; pola seperti
\d{4}-\d{2}-\d{2}berjalan 3× lebih cepat daripada ekspresi yang banyak wildcard seperti.*.
Kesimpulan
Anda kini tahu cara melakukan pencarian regex di Java menggunakan GroupDocs.Search, mulai dari menginstal perpustakaan dan membuat indeks hingga mengeksekusi kueri berbasis teks dan berbasis objek. Teknik ini memungkinkan Anda menambahkan pencarian cepat yang sadar pola ke aplikasi Java apa pun, baik Anda membangun portal dokumen, pemindai kepatuhan, atau alur kerja penambangan data.
Pertanyaan yang Sering Diajukan
Q: Apa perbedaan antara kueri regex berbasis teks dan berbasis objek di GroupDocs.Search?
A: Kueri berbasis teks adalah satu baris cepat, sementara kueri berbasis objek menyediakan definisi yang dapat digunakan kembali, tipe‑aman, yang dapat disimpan dan dipakai ulang pada banyak pencarian.
Q: Bisakah GroupDocs.Search mengindeks dokumen non‑teks seperti PDF atau file Excel?
A: Ya, perpustakaan mengekstrak teks yang dapat dicari dari PDF, DOCX, XLSX, PPTX, dan lebih dari 30 format lainnya.
Q: Bagaimana cara memperbarui indeks pencarian yang ada setelah menambahkan file baru?
A: Panggil index.add dengan dokumen baru atau yang dimodifikasi; perpustakaan akan menggabungkan perubahan tanpa membangun ulang seluruh indeks.
Q: Apa jebakan umum saat menggunakan regex dengan GroupDocs.Search?
A: Pola yang terlalu luas (mis., .*) dapat menyebabkan penurunan kinerja, dan ekspresi yang salah dapat tidak menghasilkan hasil. Selalu uji pola pada set contoh terlebih dahulu.
Q: Di mana saya dapat menemukan tutorial GroupDocs.Search yang lebih lanjutan?
A: Kunjungi GroupDocs Documentation untuk panduan mendalam, referensi API, dan proyek contoh.
Terakhir Diperbarui: 2026-07-31
Diuji Dengan: GroupDocs.Search 25.4
Penulis: GroupDocs
SearchQuery query2 = SearchQuery.createRegexQuery("^(.)\\1{1,}");
SearchResult result2 = index.search(query2);
system.out.println("Occurrences found using object form: " + result2.getDocumentCount());