J'ai donc une colonne dans une table qui contient des valeurs de chaîne (mots-clés provenant d'un outil tiers). Je travaille sur un outil automatisé pour identifier des groupes de valeurs similaires qui pourraient probablement être normalisées à une seule valeur. Par exemple, "Pompiers"/"Pompier", "Isotope"/"Asotope" ou "Canin"/"Canin".Techniques performantes pour trouver des valeurs similaires dans SQL?
Une approche qui calcule la distance levenshtein semble idéale, sauf pour le fait qu'elle implique trop de manipulations/comparaisons de chaînes et ferait probablement une mauvaise utilisation des index SQL. J'ai considéré le groupement incrémental par les caractères de gauche (X) de la colonne, ce qui est une façon pas si mauvaise de maximiser l'utilisation de l'index, mais cette approche est vraiment efficace seulement pour trouver des mots avec des différences à la fin du mot.
Quelqu'un at-il de bonnes idées pour résoudre ce problème efficacement en SQL?
Remarque: Je réalise que cette question est très similaire à (Finding how similar two strings are), mais la distinction ici est la nécessité de le faire efficacement en SQL.
Une expérience sur la façon dont Soundex résout plusieurs versions de mots? On dirait que ce serait bien pour "pompiers"/"pompier" mais peut-être pas autant pour "Canine"/"Canines". – JohnFx