@mrgnv

Как найти схожий текст в Mysql?

Есть база с 10.000 поздравительными речами (текстами).
При добавлении новой записи в бд хочу проверять, чтобы не было похожей записи.

Таблица records, поля id (int)|text(text)

1. Простой оператор LIKE при поиске не помогает (WHERE text LIKE 'текст из формы', WHERE text LIKE '%текст из формы%', WHERE text LIKE '%текст из формы%).

2. Просто WHERE text=текст из формы тоже не работает.

3.Пробовал сделать ключ FULLTEXT для поля text и искать через MATCH и AGAINST, но тоже толком не ищет.
Либо находит не один текст, а несколько, но похожих, либо ничего. Требуется же чтобы нашёл 1 запись...

Какие могут быть варивнты?
  • Вопрос задан
  • 182 просмотра
Пригласить эксперта
Ответы на вопрос 3
@rPman
Akina абсолютно прав, но в качестве ответа - одним из простых критериев похожести может быть отличие в количестве символов (известный алгоритм levenstein)
вот статья с примерами и реализациями на mysql
для postgres есть штатная реализация но нативные индексы так и не поддерживаются

p.s. повторюсь, sql базы данных для данной задачи к сожалению не подходит, чтобы это работало быстро потребуется предварительная обработка базы и построение псевдоиндексов
Ответ написан
Комментировать
ThunderCat
@ThunderCat Куратор тега MySQL
{PHP, MySql, HTML, JS, CSS} developer
При добавлении новой записи в бд хочу проверять, чтобы не было похожей записи.
"Похожий" - человеческое малоформальное определение. Все сильнее убеждаюсь что средняя особь кожаных мешков не шарит за формализацию. Распишите какие критерии "похожести" для вас являются приемлемыми. Можно на примере 2 текстов.
Ответ написан
tsklab
@tsklab
Здесь отвечаю на вопросы.
проверка+плагиат — использовать онлайн или купить.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы