Damerau-Levenshtein Distance for MySQL
Пытаюсь реализовать на сайте "нечеткий" поиск по формуле Дамерау-Левенштейна.
Взял PHP исходники с гитхаба.
Получаю ошибку "Mysql query error: (1305) FUNCTION dbname.DAMLEVLIM does not exist (400)".
Где взять эту функцию DAMLEVLIM?
Ответы (2 шт):
Автор решения: becouse
→ Ссылка
Нужно перекомпилировать MySQL для поддержки этой функции. Вот инструкция. Вот ссылка на github с описанием проблем.
Автор решения: crazydrummer
→ Ссылка
Вот что сработало у меня (Centos 7, VMBitrix):
- Скачал репозиторий отсюда: https://github.com/ifsnop/damlev
- Разархивировал и залил на сервер в папку /usr/lib64/mysql/plugin/damlev-master (без разницы какая папка)
- В файле Makefile изменил "-L/usr/lib/mysql \" на "-L/usr/lib64/mysql \" (Папку с плагинами можно найти так: SHOW VARIABLES WHERE Variable_Name LIKE "plugin_dir";)
- Запустил make в папке, куда закачал репозиторий. В папке lib появился файл mysqldamlevlim.so
- Закинул файл mysqldamlevlim.so в папку с плагинами MySQL (/usr/lib64/mysql/plugin)
- Запустил mysql и выполнил там следующие комманды:
DROP FUNCTION IF EXISTS damlevlim;
CREATE FUNCTION damlevlim RETURNS INT SONAME 'mysqldamlevlim.so';
SELECT * FROM mysql.func;
- В ответе убедился, что библиотека установилась:
