SQL - podobieństwo między dwoma łańcuchami o różnej długości

Mam tabelę produktów SQL Server, a każdy produkt ma opis, który jest publicznie dostępny na naszej stronie internetowej. Chcę zapobiec, a przynajmniej ostrzec naszych użytkowników, kiedy opis jest zbyt podobny do opisu innego produktu. Długość opisu każdego produktu może się znacznie różnić.

Chciałbym zapytać o produkty z opisami, które zawierają duplikaty / podobne akapity / bloki tekstu między sobą. tj. ciąg A ma kilka unikalnych treści, ale dzieli podobny / identyczny akapit z ciągiem B. Jednak nie jestem pewien, który algorytm podobieństwa najlepiej jest użyć:

TheOdległość Levenshteina iOdległość Jaro-Winlera wydaje się, że algorytmy działają tylko z krótkimi łańcuchami.

Nie jestem pewiennajdłuższy wspólny algorytm podciągania bardzo dobrze uwzględnia duże różnice. tj. wydaje się ignorować potencjalną przestrzeń między dwoma znakami, znajdując dowolną podobną sekwencję kombinacji.

Huzzy rozmyte rodzaj dźwięków czego szukam, ale jestemnie tylko szukam duplikatów treści z subtelnymi różnicami. Jestemrównież poszukuje duplikatów treści z subtelnymi różnicamiw unikalnym bloku tekstu. I nie mam pojęcia, jak zaimplementować rozmyte hasze w SQL.SOUNDEX () iRÓŻNICA() wydają się używać rozmytego mieszania, ale są dość nieprecyzyjne dla mojego przypadku użycia.

Idealnie byłoby, gdyby funkcja podobieństwa SQL była szybka, ale mogłem przechowywać zbuforowane wartości podobieństwa w innej tabeli i zaplanować zadanie do sporadycznej aktualizacji.

Jaka jest najlepsza implementacja algorytmu / SQL (lub CLR), aby to osiągnąć?

questionAnswers(1)

yourAnswerToTheQuestion