Ми розробили веб-додаток для відповідності імен. Він функціонує шляхом розбиття імен на частини, а значення Soundex кожної частини зберігається в базі даних. Показник відстані Левенштейн використовуються для застосування процентного відповідності звуку, а також написання проти даного імені.
Під час виконання ми завантажуємо всі записи в пам'ять і застосовуємо відстань Левенштейна до всіх значень Soundex та написання всіх частин усіх імен.
Спочатку це справно працювало, оскільки було максимум 20 тисяч імен, але зараз один з наших клієнтів має 30 мільйонів імен. Завантаження цього величезного списку в пам’яті для кожного запиту та застосування цього типу відповідності є пафосним підходом, використовуючи багато пам’яті та часу на виконання.
Ми шукаємо пропозиції найближчим часом пошукати в базі даних 30 мільйонів записів або більше з відсотковою відповідністю звуку та орфографії.
Основна функціональність
Кінцевий користувач вводить ім'я, яке має відповідати, і мінімальний відсоток. Ми повинні показати всі ті імена в базі даних, для яких будь-яка частина імені збігається з будь-якою частиною даного імені до заданого відсотка. Повне ім'я не потрібно узгоджувати, будь-яка частина, якщо збігається до відсотка, є успішною. Наприклад.
Given Name: Helen Hunt
Name in DB: Holly Hunter
Обидві частини обох імен точно не збігаються, але до деякої міри, припустимо 80%, тому якщо користувач введе 80%, то ім'я в БД повинно бути показане як відповідне ім'я.