SQL - Сходство между двумя строками различной длины

У меня есть таблица продуктов SQL Server, и у каждого продукта есть описание, которое доступно для всех на нашем веб-сайте. Я хочу предотвратить или, по крайней мере, предупредить наших пользователей, когда описание слишком похоже на описание другого продукта. Длина описания каждого продукта может сильно различаться.

Я хотел бы запросить продукты с описаниями, которые содержат дубликаты / похожие абзацы / блоки текста между собой. то есть строка A имеет множество уникального содержимого, но имеет похожий / идентичный параграф с строкой B. Однако я не уверен, какой алгоритм подобия лучше всего использовать:

Расстояние Левенштейна а такжеРасстояние Яро-Винлера Похоже, что алгоритмы хорошо работают только с короткими строками.

Я не уверенсамый длинный алгоритм общей подпоследовательности очень хорошо учитывает большие различия. то есть он, кажется, игнорирует потенциальное пространство между двумя символами, находя любую подобную комбинацию последовательности.

Нечеткое хеширование что-то вроде того, что я ищу, но яне просто поиск дублированного контента с небольшими различиями. ятакже поиск дублированного контента с внесенными тонкими различиямивнутри уникального блока текста, И я понятия не имею, как реализовать нечеткие хэши в SQL.SOUNDEX () а такжеРАЗНИЦА () похоже, что использует нечеткое хеширование, но довольно неточно для моего случая использования.

В идеале функция SQL подобия была бы быстрой, но я мог бы хранить кэшированные значения подобия в другой таблице и планировать задание для периодического обновления.

Какая реализация алгоритма / SQL (или CLR интеграции) является лучшей для достижения этой цели?

Ответы на вопрос(1)

Ваш ответ на вопрос