SQL - Ähnlichkeit zwischen zwei Zeichenfolgen unterschiedlicher Länge

Ich habe eine SQL Server-Produkttabelle und jedes Produkt verfügt über eine Beschreibung, die auf unserer Website öffentlich verfügbar ist. Ich möchte verhindern oder zumindest unsere Benutzer warnen, wenn eine Beschreibung der Beschreibung eines anderen Produkts zu ähnlich ist. Die Länge der Produktbeschreibungen kann stark variieren.

Ich möchte nach Produkten mit Beschreibungen suchen, die doppelte / ähnliche Absätze / Textblöcke enthalten. d.h. String A hat eine Menge eindeutiger Inhalte, teilt jedoch einen ähnlichen / identischen Absatz mit String B. Ich bin mir jedoch nicht sicher, welcher Ähnlichkeitsalgorithmus am besten zu verwenden ist:

DasLevenshtein Entfernung undJaro-Winler Abstand Algorithmen scheinen nur mit kurzen Strings gut zu funktionieren.

Ich bin mir nicht sicherlängster gemeinsamer Teilsequenzalgorithmus berücksichtigt große Unterschiede sehr gut. es scheint den potentiellen Abstand zwischen zwei Zeichen zu ignorieren und eine ähnliche Kombinationssequenz zu finden.

Fuzzy-Hashing irgendwie klingt was ich suche, aber ich binnicht nur Suche nach doppelten Inhalten mit subtilen Unterschieden. Ich binebenfalls Suche nach doppelten Inhalten mit subtilen Unterschiedeninnerhalb eines eindeutigen Textblocks. Und ich hätte keine Ahnung, wie man Fuzzy-Hashes in SQL implementiert.SOUNDEX () undUNTERSCHIED() scheinen Fuzzy-Hashing zu verwenden, sind aber für meinen Anwendungsfall ziemlich ungenau.

Im Idealfall wäre die Ähnlichkeits-SQL-Funktion schnell, aber ich könnte zwischengespeicherte Ähnlichkeitswerte in einer anderen Tabelle speichern und einen Job planen, der gelegentlich aktualisiert wird.

Was ist die beste Implementierung von Algorithmus / SQL (oder CLR-Integration), um dies zu erreichen?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage