2

J'essaye de rechercher une FTI en utilisant CONTAINS pour des noms d'utilisateur de style de Twitter, par ex. @username, mais les séparateurs de mots ignorent le symbole @. Est-il possible de désactiver les séparateurs de mots? De la recherche, il ya un moyen de créer une DLL de disjoncteur personnalisé et de l'installer et de l'assigner, mais tout cela semble un peu intensif et, franchement, sur ma tête. J'ai désactivé les mots d'arrêt pour que les tirets ne soient pas ignorés mais j'ai besoin de ce symbole @. Des idées?Recherche d'index de plein texte de SQL2008 sans disjoncteurs de mot

+0

J'ai trouvé cette pile - http://stackoverflow.com/questions/3914798/can-i-define-which-word-breakers-to-use-when-building-a-mssql-fulltext-index - mais encore une fois , la réponse acceptée conduit à une pente compliquée et glissante. Il y a une solution simple. –

Répondre

2

Vous n'allez pas aimer cette réponse. Mais les index de texte intégral ne prennent en compte que les caractères _ et ` lors de l'indexation. Tous les autres caractères sont ignorés et les mots se divisent où ces caractères se produisent. Ceci est principalement dû au fait que les index de texte intégral sont conçus pour indexer des documents volumineux et que seuls les mots appropriés sont considérés pour en faire une recherche plus raffinée.

Nous avons rencontré un problème similaire. Pour résoudre ce fait, nous avions une table de traduction, où des personnages comme @, -,/ ont été remplacés par des séquences spéciales comme '`at`', '` dash`', '`slash`' etc Tout en cherchant dans le texte intégral, vous devez à nouveau remplacer vos caractères dans la chaîne de recherche par ces séquences spéciales et rechercher. Cela devrait prendre soin des caractères spéciaux.

+0

Toute réponse est meilleure que pas de réponse, merci Torpedo. Je vais essayer ça. –