2009-02-20 4 views
1

J'ai les données suivantes dans un champ, qui est indexé par un Full Text Catalog.Un catalogue de texte intégral Sql Server peut-il trouver les éléments suivants?

Pamorama City, Los Angeles, Californie , États-Unis

simple. (J'ai aussi beaucoup d'autres, mais ils fonctionnent bien).

Maintenant, si l'utilisateur fournit cette incorrecte, mispelt recherche par mot

ville de pamorma < - remarquez le milieu 'a' manque de la fente 6 caractères

puis ce champ de données n'est pas retourné.

Alors, un Sql 2008 FTS sur un catalogue peut-il renvoyer des mots qu'il PENSE qu'il est proche?

c'est le sql, btw, si cela aide ...

SELECT TOP(10) a.Address, AddressSearch.RANK AS TopRank 
FROM Addresses a WITH (NOLOCK) 
    INNER JOIN CONTAINSTABLE (Addresses, FormattedAddress, 
          'panorma NEAR city') AS AddressSearch 
     ON a.IdAddress = AddressSearch.[KEY] 

Si oui .. u peut également définir un poids pour les mots 'proche' aussi? comme un match de 90% ou quelque chose? acclamations :)

Répondre

1

Peut-être que vous pouvez utiliser les fonctions T-SQL SOUNDEX et DIFFERENCE?

+0

Hmm .. DIFFERENCE pourrait être une possibilité :) Je vais essayer de voir si je peux obtenir quelques résultats de '4'. Hmm ... Essayer d'utiliser le résultat d'un SOUNDEX semble très confus. –

+0

L'avez-vous travaillé? –

+0

Je pense que j'ai fini par spliter chaque mot (délimité par des espaces et/ou des virgules) et chercher avec un ET dans le CONTAINS (..) .. Je pense: P –

Questions connexes