Pourquoi ne SQL pas le texte intégral de retour d'indexation pour les mots contenant #?

voix
18

Par exemple, ma requête est comme suit en utilisant SQL Server 2005:

SELECT * FROM Table WHERE FREETEXT(SearchField, 'c#') 

J'ai un index de texte intégral défini pour utiliser la colonne Searchfield qui renvoie des résultats lors de l'utilisation:

SELECT * FROM Table WHERE SearchField LIKE '%c#%'

Je crois # est une lettre spéciale, alors comment puis-je autoriser FREETEXT à fonctionner correctement pour la requête ci-dessus?

Créé 04/08/2008 à 06:51
source utilisateur
Dans d'autres langues...                            


2 réponses

voix
10

Le # omble chevalier est indexé comme la ponctuation et donc ignoré, donc il semble que nous allons supprimer la lettre C de ne pas tenir compte de notre indexation des listes de mots.

Testé localement après avoir fait cela et la reconstruction des index et j'obtenir des résultats!

En regardant en utilisant une autre langue lexical sur la colonne indexée, de sorte que les caractères spéciaux ne sont pas ignorés.

EDIT: J'ai aussi trouvé ces informations :

c # est indexé comme c (si c est pas dans votre liste de mots parasites, voir plus sur les listes de mots de bruit plus tard), mais C # est indexé comme C # (dans SQL 2005 et SQL 2000 en cours d'exécution sur Win2003, peu importe si C ou c est dans votre bruit liste de mots). Il est non seulement C # qui est stocké sous forme de C #, mais toute lettre majuscule suivi de #. A l'inverse, c ++ (et toute autre lettre en minuscule suivie d'un ++) est indexée comme c (que c est dans votre liste de mots de bruit).

Créé 04/08/2008 à 07:39
source utilisateur

voix
1

Citant une page d'aide bien répliqué sur l'indexation langage de requête de service:

Pour utiliser des caractères spéciaux tels que &, |, ^, #, @, $, (,), dans une requête, placez votre requête entre guillemets ( « ).

Pour autant que je sache, la recherche en texte intégral en MSSQLest également fait par le service d'indexation, de sorte que cela pourrait aider.

Créé 04/08/2008 à 07:10
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more