Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Requêtes mixtes sur l'index de texte intégral

Je ne pense pas que vous devriez rencontrer de problème, si j'ai bien compris votre question. Je combine souvent le texte intégral et le b-tree avec d'excellents résultats. Lorsque la recherche en texte intégral est effectuée, elle considère chaque "terme" délimité comme un index, tout comme il le ferait une colonne indexée avec un seul terme (donner ou prendre des statistiques sql). Dans tous les cas, SQL doit déterminer son chemin d'exécution. La recherche de texte intégral n'est pas favorable à la comparaison de valeurs entières/de date, mais plutôt pour les chaînes de correspondance de données délimitées.

J'imagine que vous voudriez continuer à utiliser l'efficacité du concept b-tree à votre avantage. La recherche d'index de catalogue de texte intégral me semble être une recherche beaucoup plus détournée, bien que beaucoup plus avantageuse dans les situations utilisant "LIKE" pour analyser/comparer des chaînes.

Ce que je fais c'est :

 SELECT * FROM MyTable
  WHERE CONTAINS(columnName, '"Toy Dog" OR "live animal"')
    AND start_date > ###;

(voir cet article msdn pour des informations sur la syntaxe )

PS lors de l'indexation en texte intégral de données entières, désactivez la liste de mots vides afin que ces valeurs ne soient pas ignorées dans l'indexation du catalogue.

J'espère que tout cela aide! (Personne n'a répondu alors j'ai pensé donner mon expérience)