2010-05-12 7 views
4

Je veux effectuer des recherches sur une colonne particulière d'une table de telle sorte que le jeu de résultats retour devrait satify suivant 2 conditions:SQL Server - Pourcentage basé Recherche plein texte

  1. ensemble du scrutin résultat devrait avoir des dossiers dont 90% des caractères correspond au texte recherché.

  2. Le jeu de résultats renvoyé doit avoir des enregistrements dont 70% des caractères consécutifs correspondent au texte recherché.

Il implique que lorsque 10 mot de caractère Sukhminder est recherché, alors:

il doit retourner des disques comme Sukhmindes, ukhminder, Sukhmindzr, car il remplit les deux conditions mentionnées ci-dessus.

Mais il ne devrait pas retourner des enregistrements comme Sukhmixder parce qu'il ne remplit pas la deuxième condition. De même, Il ne devrait pas retourner l'enregistrement Sukhminzzz parce qu'il ne remplit pas la première condition. J'essaie d'utiliser la fonctionnalité de recherche de texte intégral de SQL Server. Mais, n'a pas pu formuler la requête requise pour le moment. Veuillez répondre dès que possible.

Répondre

1

Vous pouvez essayer d'utiliser une combinaison de la commande SOUNDEX et de la commande DIFFERENCE avec la recherche en texte intégral.

Vérifiez cette Google book en ligne qui en parle

0

Voulez-vous dire 70% du mot d'origine? Je pense que la seule façon que vous pouvez le faire exactement comme indiqué serait de travailler sur toutes les permutations de chaînes possibles qui pourraient correspondre aux critères de 70% et de ramener les dossiers correspondant à l'un de ces

Col LIKE '%min%' AND (
Col LIKE '%Sukhmin%' OR Col LIKE '%ukhmind%' 
OR Col LIKE '%khminde%' OR Col LIKE '%hminder%') 

puis effectuez un traitement supplémentaire pour voir si le critère de 90% est atteint.

Edit: En fait, vous pourriez trouver ce lien sur la recherche floue pour intéresser http://anastasiosyal.com/archive/2009/01/11/18.aspx

Questions connexes