Kami telah mengembangkan aplikasi berbasis web untuk pencocokan nama. Ini beroperasi dengan memecah nama menjadi beberapa bagian dan nilai Soundex dari setiap bagian disimpan dalam database. The Levenshtein metrik jarak digunakan untuk menerapkan persentase pencocokan suara serta ejaan terhadap nama yang diberikan.
Saat runtime, kami memuat semua rekaman ke dalam memori dan menerapkan jarak Levenshtein ke semua nilai Soundex dan ejaan semua bagian dari semua nama.
Awalnya ini bekerja dengan baik karena ada maksimum 20 ribu nama, tetapi sekarang salah satu klien kami memiliki 30 juta nama. Memuat daftar besar ini dalam memori untuk setiap permintaan dan menerapkan jenis pencocokan ini adalah pendekatan yang menyedihkan, menggunakan banyak memori dan waktu eksekusi.
Kami sedang mencari saran untuk mencari di database 30 juta rekaman atau lebih dalam waktu dekat dengan pencocokan persentase Suara dan Ejaan.
Fungsi Inti
Pengguna akhir memasukkan nama untuk dicocokkan dan persentase minimum. Kami seharusnya menunjukkan semua nama dalam basis data yang setiap bagian dari nama tersebut cocok dengan bagian mana pun dari nama yang diberikan hingga persentase yang diberikan. Nama lengkap tidak harus dicocokkan, bagian apa pun jika cocok hingga persentase berhasil. Sebagai contoh.
Given Name: Helen Hunt
Name in DB: Holly Hunter
Kedua bagian dari kedua nama tidak sama persis tetapi sampai batas tertentu, mari kita asumsikan 80%, jadi jika pengguna memasukkan 80% maka nama dalam DB harus ditampilkan sebagai nama yang cocok.