SQL - Similitud entre dos cadenas de longitud variable

Tengo una tabla de productos de SQL Server, y cada producto tiene una descripción que está disponible públicamente en nuestro sitio web. Quiero evitar, o al menos advertir a nuestros usuarios cuando, una descripción es demasiado similar a la descripción de otro producto. La longitud de la descripción de cada producto puede variar enormemente.

Me gustaría consultar productos con descripciones que incluyan párrafos / bloques de texto duplicados / similares entre sí. es decir, la cadena A tiene un montón de contenido único, pero comparte un párrafo similar / idéntico con la cadena B. Sin embargo, no estoy seguro de qué algoritmo de similitud es mejor usar:

losLevenshtein distancia yJaro-Winler distancia Los algoritmos parecen funcionar bien solo con cadenas cortas.

No estoy seguro de laalgoritmo de subsecuencia común más largo toma muy en cuenta las grandes diferencias. es decir, parece ignorar el espacio potencial entre dos caracteres, encontrando una secuencia de combinación similar.

Hash borroso tipo de sonidos lo que estoy buscando, pero estoyNo solo Buscando contenido duplicado con diferencias sutiles. soyademás buscando contenido duplicado con sutiles diferencias inyectadasdentro de un bloque de texto único. Y no tengo idea de cómo implementar hashes difusos en SQL.SOUNDEX () yDIFERENCIA() Parece que utilizo hash difuso, pero son bastante imprecisos para mi caso de uso.

Idealmente, la función SQL de similitud sería rápida, pero podría almacenar valores de similitud almacenados en caché en otra tabla y programar un trabajo para actualizar de vez en cuando.

¿Cuál es la mejor implementación de algoritmo / SQL (o integración CLR) para lograr esto?

Respuestas a la pregunta(1)

Su respuesta a la pregunta