Как проверить SOUNDEX в php, когда php SOUNDEX выводит только 3 цифры

Я пытаюсь сравнить названия компаний с помощью SOUNDEX, но вызов php для soundex выводит только 3 цифры, поэтому сравнения не совсем точны. Есть ли способ улучшить вывод звука, чтобы результаты были более точными?


person AFG    schedule 08.01.2009    source источник


Ответы (2)


попробуйте вместо этого использовать метафон

person ʞɔıu    schedule 08.01.2009

В зависимости от того, против чего вы используете SOUNDEX, может быть дешевле запустить SOUNDEX() на уровне базы данных:

$result = $db->query("
    SELECT
        company.id,
        company.name,
        SOUNDEX(company.name) AS soundex
    FROM
        company
    WHERE
        company.name SOUNDS LIKE '$companyName'
");
person Ry Biesemeyer    schedule 09.01.2009
comment
должен ли я создать в самой базе данных mysql то, что индекс soundex опережает время? - person AFG; 09.01.2009
comment
На мой взгляд, преимущества этого (предельное увеличение производительности) не перевешивают боль/затраты (поддержание синхронизации столбца). Я настроил таблицу с 5000 уникальными именами, проиндексированным столбцом имен и запустил SOUNDEX для всех. Результаты: в среднем 1,8 мс против 1,5 мс только для получения данных без SOUNDEX. - person Ry Biesemeyer; 12.01.2009