Question

Il y a un demande pour que la recherche SO soit par défaut une fonctionnalité de style AND sur le OU actuel lorsque plusieurs termes sont utilisés.

La réponse officielle fut :

pas aussi simple qu'il y paraît ;nous utilisons SQL Server 2005 TEXTE LIBRE() fonction, et je ne trouve pas de moyen de spécifier AND vs.OU -- pouvez-vous ?

Alors, y a-t-il un moyen ?

Il y a un nombre de ressources dessus, je peux trouver, mais je ne suis pas un expert.

Était-ce utile?

La solution

OK, ce changement est en cours -- nous utilisons maintenant CONTAINS() avec implicite AND au lieu de FREETEXT() et c'est implicite OR.

Autres conseils

D'après ce que j'ai vu, c'est pas possible de faire AND lors de l'utilisation de FREETEXT() sous SQL 2005 (ni 2008, autant que je sache).

Une requête FREETEXT ignore de par sa conception les opérateurs booléens, de proximité et génériques.Cependant, vous pourriez faire ceci :

WHERE FREETEXT('You gotta love MS-SQL') > 0
 AND FREETEXT('You gotta love MySQL too...') >  0

Ou c'est ce que je pense :)

-- L'idée est de le faire évaluer en booléen, afin que vous puissiez utiliser des opérateurs booléens.Je ne sais pas si cela donnerait une erreur ou non.je le pense devrait travail.Mais les documents de référence soulignent le fait que cela n’est pas possible de par sa conception.

L'utilisation de CONTAINS() au lieu de FREETEXT() pourrait aider.

Je viens de commencer à lire sur le texte libre, alors soyez indulgents avec moi.Si vous essayez d'autoriser la recherche d'une balise, par exemple VB, et de rechercher également des éléments étiquetés comme VB6, Visual Basic, VisualBasic et VB.Net, ces valeurs ne seraient-elles pas définies comme synonymes dans le thésaurus de la base de données plutôt que comme paramètres de requête. ?

Si tel est effectivement le cas, cela lien sur MSDN explique comment ajouter des éléments au thésaurus.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top