.NET Je me sens comme un peu d'un débutant affichage, mais de toute façon:La meilleure façon de comparer des chaînes complexes dans SQL ou
J'ai un grand nombre de pièces, 3000-5000 qui ont des noms complexes, à base sur celui qui est entré dans les éléments sur une période de 16 ans, et l'exemple d'un nom est:
"Food, Dog, Pal Meaty Bites chunks 8kg bag"
un autre, point connexe est nommé:
"DOG FOOD: Meaty Bites (Pal) 22kg bag"
Le problème est que j'ai des listes d'articles d'un certain nombre de fournisseurs, avec des prix actualisés, que je dois adapter à notre liste de stock existante. La première fois que je reçois une liste, je veux essayer de faire une recherche de «correspondance la plus proche» et présenter à l'utilisateur une liste de nos noms d'articles courants, qui pourraient correspondre au nom de l'article en stock du fournisseur. L'utilisateur choisira alors le bon SKU et l'application importera l'article du fournisseur et le lien vers notre tableau de stock PK.
Le nom du fournisseur variera également. Un exemple est:
"Pal Meaty Bites Chunks 8kg"
Je peux faire la correspondance en SQL ou .NET, ce que vous recommandez. Je souhaite présenter l'utilisateur avec le moins d'éléments possible en fonction du plus grand nombre de mots clés disponibles. Mes idées sont les suivantes:
Dans .Net: diviser en tableau et rechercher chaque mot-clé pour chaque élément (lent) En SQL: utiliser un index de texte intégral et diviser le nom en mots-clés en utilisant "OU" liste de retour sur rang avec coupure
Cela doit être un scénario commun, je ne suis pas sûr de la meilleure façon de le faire. Merci pour votre contribution!
Editer: Ajout d'un contexte: Nous avons une table SKU qui a environ 20 champs, y compris StockKeepingUnitID, qui est l'unique PK (int identité). Les produits des fournisseurs sont extraits dans une table appelée StockOrderUnit, qui a un FK de SupplierID et StockKeepingUnitID, et possède un champ appelé SupplierCode (varchar) qui contient le code unique du fournisseur pour cet article en stock. Le problème est que de nombreux fournisseurs nous envoient des listes de prix et qu'il appartient à un utilisateur de faire correspondre les articles du fournisseur (qui sont inconnus à ce stade) avec les références déjà existantes dans la base de données. Une fois qu'ils en ont sélectionné un, les enregistrements sont joints.
Quelle version de SQL Server? Si SQL 2008 les mots indexés en texte intégral sont assez facilement disponibles pour interroger. –