2010-02-23 4 views
1

J'ai un problème avec une recherche FreeText, actuellement en cours d'exécution sur un serveur SQL 2000.Comment gérer les termes de recherche à caractère unique dans la recherche MS-SQL FreeText?

Dans un tableau d'environ 1,3 million de lignes contenant des noms de société, j'essaie d'utiliser une requête FreeText. Toutefois, étant donné que SQL Server supprime les caractères spéciaux et les caractères uniques lors de la construction de son index, notre code fait de même lors de l'envoi de la requête. Par exemple, des recherches comme 'Texas A & M' finissent par interroger 'Texas' qui renvoie une tonne d'enregistrements non pertinents.

Quelle est la meilleure pratique pour gérer ces types de requêtes de recherche? Ce problème serait-il corrigé par la mise à niveau vers une version plus récente de SQL Server?

À ce stade, un moteur d'indexation tiers comme Lucene n'est pas une option, même si cela réglerait le problème, ce dont je ne suis pas sûr.

Répondre

0

Vous pouvez essayer d'utiliser un seul caractère générique '_' similaire à:

WHERE myColumn like 'Texas_A_&_M' 

ou

WHERE myColumn like 'Texas%A_&_M' 
0

Si vous recherchez des noms de sociétés et pas de longs passages de texte, pourquoi ne pas simplement utiliser LIKE?

... 
WHERE 
    CompanyName LIKE '%Texas A%&%M%' 
Questions connexes