Vous devez choisir le séparateur de mots neutre si vous avez une colonne qui a différentes langues (langues en particulier occidentales et non occidentales ensemble) en elle.
Il y a quelques autres options telles que
- seperating les colonnes de chaque langue (comme @Tony a déclaré)
- si vos données est un texte brut; le convertir en type de données xml et ajouter des balises de langue qui indiquent la langue utilisée par le moteur de texte intégral.
- le développement d'un briseur de mot personnalisé (Bien qu'il ne soit pas une solution optimale)
Voici un article sur les meilleures pratiques pour le choix d'une langue lors de la création d'un index en texte intégral.
Ajouté Après Commentaires
Il peut être interrogé plusieurs colonnes de plusieurs façons en fonction de votre cas d'utilisation. Le moyen le plus simple consiste à utiliser le prédicat CONTAINS pour interroger plusieurs colonnes en spécifiant une liste de colonnes à rechercher comme indiqué ci-dessous;
SELECT Name, Color FROM Production.Product
WHERE CONTAINS((Name, Color), 'Red');
Une autre solution peut être en utilisant une colonne d'indicateur de langue qui peut être utilisé dans le cas/instructions IF qui vous aide à diviser conditionnellement la requête en langue. Vous pouvez également utiliser la fonction TSQL DATALENGTH() pour vérifier si elle est vide et décider quelle colonne choisir.
Ne serait-il pas préférable (si possible) de séparer le texte anglais et japonais en colonnes séparées? Ensuite, vous pouvez appliquer une recherche de texte à chacun. – Tony
Cela signifie-t-il que pour chaque ligne, la colonne Anglaise ou Japonaise est vide? Dans mon application, la colonne à rechercher est soit en japonais ou en anglais. Donc, pour chaque colonne, j'ai besoin de créer deux colonnes supplémentaires, colonne en anglais et colonne en japonais. :-) – George2
Mais vous pouvez également supprimer la colonne d'origine, donc seulement une colonne supplémentaire. On dirait une bonne solution? – thomaspaulb