Pencarian fuzzy membantu Anda menemukan konten yang serupa, tidak persis sama, dalam data Anda. Ini sangat berguna ketika ada sedikit kesalahan ketik, salah ejaan, atau variasi data. Artikel ini membahas tentang cara Java melakukan pencarian fuzzy untuk menemukan file yang tersebar di sekitar folder.
Berikut adalah beberapa contoh untuk menguraikan konten sampel pencarian fuzzy:
- Anda mungkin tidak yakin apakah dokumen tersebut menggunakan ejaan “warna” atau “warna”.
- Saat mencari “John”, sebenarnya bisa dieja sebagai “Jon” atau mungkin “Jhon”.
- Mencoba menemukan “USA” meskipun seseorang mengetik “USA”
- Jika Anda membuat “kesalahan”, oh tunggu, itu sebenarnya “kesalahan”.
Solusi untuk menemukan konten tersebut adalah Fuzzy Search.
Perpustakaan Pencarian Fuzzy Java
Untuk membuat pencarian fuzzy di Java, kami akan menggunakan API GroupDocs.Search for Java. API ini sangat mampu menunjukkan fleksibilitas dan memberikan tingkat toleransi kesalahan yang dapat disesuaikan. Fitur ini berguna ketika menangani variasi bahasa seperti bahasa Inggris British dan Amerika, serta kesalahan ketik.
Dengan perpustakaan ini, pencarian fuzzy dapat dilakukan dalam berbagai macam format file. Dukungannya tidak hanya terbatas pada dokumen Word (DOC, DOCX), spreadsheet (XLS, XLSX), presentasi (PPT, PPTX), PDF, bahasa Markup (HTML, XML), Markdown (MD), eBook (EPUB, CHM, FB2), email (MSG, EML), catatan OneNote, dan bahkan arsip ZIP.
Jika Anda ingin mengetahui semua jenis file yang dapat ditangani oleh sihir ini, intip saja dokumentasi.
Untuk memulai, Anda dapat mengambil API dari bagian unduhan, atau cukup tambahkan repositori terbaru dan konfigurasi ketergantungan Maven langsung ke aplikasi Java Anda.
Mari Pencarian Fuzzy di File menggunakan Java
Ikuti langkah-langkah berikut untuk melakukan pencarian fuzzy di banyak file dengan berbagai format file dalam folder menggunakan Java:
- Mulailah dengan membuat Indeks menggunakan folder tempat file Anda berada.
- Tambahkan jalur folder utama ke indeks.
- Berikan permintaan pencarian yang ingin Anda cari.
- Aktifkan keajaiban Pencarian Fuzzy agar ia memahami kesalahan kecil.
- Mengatur Tingkat Kesamaan pada Algoritma Fuzzy.
- Jalankan pencarian menggunakan metode pencarian untuk mendapatkan hasil pencarian.
- Sekarang, Anda dapat melintasi SearchResults untuk membuat atau mencetak output sesuai keinginan Anda.
Dalam kode Java di bawah, program mencari konten serupa yang Anda minta di semua file dan subfolder. Ini toleran terhadap kesalahan ejaan, kesalahan hingga 25%. Jika Anda mengintip kodenya, Anda akan melihat bahwa tingkat kesamaan diatur ke 0,75, yang setara dengan 75% kecocokan. Jika ingin menyempurnakan pencarian, cukup ubah tingkat kemiripan pada kodenya.
// Fuzzy Cari banyak file di beberapa folder menggunakan Java
// Membuat folder indeks dan menambahkan folder dokumen ke dalamnya
Index index = new Index("path/indexing-folder-path");
index.add("path/parent-folder");
SearchOptions options = new SearchOptions();
options.getFuzzySearch().setEnabled(true); // Enabling the fuzzy search
options.getFuzzySearch().setFuzzyAlgorithm(new SimilarityLevel(0.75));
String query = "nulla"; // search approximate matches of the provided query
SearchResult result = index.search(query, options);
Setelah Anda menjalankan kode, Anda akan mendapatkan daftar hasil pencarian fuzzy yang diambil. Jika Anda ingin melihat cara mencetak hasil pencarian, baca terus artikel ini.
Query: nulla
Documents: 2
Occurrences: 135
Document: Lorem ipsum.docx
Occurrences: 132
Field: content
Occurrences: 132
nulla 98
nullam 34
Document: EnglishText.txt
Occurrences: 3
Field: content
Occurrences: 3
dull 1
full 1
fully 1
Mencetak Hasil Pencarian
Kode Java berikut menyediakan dua cara untuk menyajikan hasil pencarian Anda.
- Sorot semua perkiraan kecocokan.
- Cetak hasilnya dalam format yang mudah dibaca dan dianalisis
// Sorot dan Cetak Hasil Pencarian untuk semua dokumen menggunakan Java
for (int i = 0 ; i < result.getDocumentCount(); i++)
{
FoundDocument document = result.getFoundDocument(i);
OutputAdapter outputAdapter = new FileOutputAdapter(OutputFormat.Html, "path/Highlight" + i + ".html");
Highlighter highlighter = new DocumentHighlighter(outputAdapter);
index.highlight(document, highlighter);
System.out.println("\tDocument: " + document.getDocumentInfo().getFilePath());
System.out.println("\tOccurrences: " + document.getOccurrenceCount());
for (FoundDocumentField field : document.getFoundFields()) {
System.out.println("\t\tField: " + field.getFieldName());
System.out.println("\t\tOccurrences: " + field.getOccurrenceCount());
// Mencetak istilah yang ditemukan
if (field.getTerms() != null) {
for (int k = 0; k < field.getTerms().length; k++) {
System.out.println("\t\t\t" + field.getTerms()[k] + " - " + field.getTermsOccurrences()[k]);
}
}
}
}
Mendapatkan Lisensi Gratis atau Uji Coba Gratis
Lisensi gratis
Dapatkan lisensi sementara gratis untuk menjelajahi perpustakaan ini tanpa batasan.
Uji Coba Gratis
Anda dapat mengunduh uji coba gratis dari bagian unduhan.
Kesimpulan
Pada artikel ini, kita menjelajahi cara terprogram Java untuk melakukan pencarian Fuzzy. Ini membantu menemukan perkiraan kata yang cocok dan serupa, meskipun ada kesalahan kecil. Fitur ini berguna untuk mengatasi perbedaan antara bahasa Inggris British dan Amerika, kesalahan ketik, perubahan nama, dan bunyi kata yang serupa.
Untuk mengetahui lebih lanjut tentang API, lihat dokumentasi.
Jika Anda memiliki pertanyaan atau ingin berdiskusi lebih lanjut, kunjungi forum.