Pencarian Fuzzy menggunakan Java

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:

  1. Mulailah dengan membuat Indeks menggunakan folder tempat file Anda berada.
  2. Tambahkan jalur folder utama ke indeks.
  3. Berikan permintaan pencarian yang ingin Anda cari.
  4. Aktifkan keajaiban Pencarian Fuzzy agar ia memahami kesalahan kecil.
  5. Mengatur Tingkat Kesamaan pada Algoritma Fuzzy.
  6. Jalankan pencarian menggunakan metode pencarian untuk mendapatkan hasil pencarian.
  7. 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.

Java API untuk Pencarian dalam File dan Folder

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.


Lihat juga