Transformer les mots parasites (option de configuration de serveur)

Utilisez l'option de configuration de serveur transform noise words pour supprimer un message d'erreur si des mots parasites, autrement dit des mots vides, provoquent le retour de lignes nulles d'une opération booléenne sur une requête de texte intégral. Cette option est utile pour les requêtes de texte intégral qui utilisent le prédicat CONTAINS dans lequel les opérations booléennes ou les opérations de proximité (NEAR) incluent des mots parasites. Les valeurs possibles sont décrites dans le tableau suivant.

Valeur

Description

0

Les mots parasites (ou mots vides) ne sont pas transformés. Lorsqu'une requête de texte intégral contient des mots parasites, la requête retourne des lignes nulles, et SQL Server génère un avertissement. Il s'agit du comportement par défaut.

[!REMARQUE]

Il s'agit d'un avertissement d'exécution. Par conséquent, si la clause de texte intégral dans la requête n'est pas exécutée, l'avertissement n'est pas généré. Pour une requête locale, un seul avertissement est généré, même lorsqu'il y a plusieurs clauses de requêtes de texte intégral. Pour une requête distante, le serveur lié peut ne pas relayer l'erreur ; par conséquent, l'avertissement peut ne pas être généré.

1

Les mots parasites (ou mots vides) sont transformés. Ils sont ignorés, et le reste de la requête est évalué.

Si des mots parasites sont spécifiés dans un terme de proximité, SQL Server les supprime. Par exemple, le mot parasite is est supprimé de CONTAINS(<column_name>, 'NEAR (hello,is,goodbye)'), en transformant la requête de recherche en CONTAINS(<column_name>, 'NEAR(hello,goodbye)'). Notez que CONTAINS(<column_name>, 'NEAR(hello,is)') serait transformé en CONTAINS(<column_name>, hello), car il n'existe qu'un seul terme de recherche valide.

Effets du paramètre transform noise words

Cette section illustre le comportement des requêtes qui contiennent un mot parasite, « the », sous les autres paramètres de transform noise words. Il est supposé que les chaînes de la requête de texte intégral de l'exemple sont exécutées par rapport à une ligne de table qui contient les données suivantes : [1, "The black cat"].

[!REMARQUE]

Tous ces scénarios peuvent générer un avertissement de mot parasite.

  • Avec la valeur 0 affectée à transform noise words :

    Chaîne de requête

    Résultat

    "cat" AND "the"

    Aucun résultat (Le comportement est le même pour "the" AND "cat".)

    "cat" NEAR "the"

    Aucun résultat (Le comportement est le même pour "the" NEAR "cat".)

    "the" AND NOT "black"

    Aucun résultat

    "black" AND NOT "the"

    Aucun résultat

  • Avec la valeur 1 affectée à transform noise words :

    Chaîne de requête

    Résultat

    "cat" AND "the"

    Accès à la ligne portant l'ID 1

    "cat" NEAR "the"

    Accès à la ligne portant l'ID 1

    "the" AND NOT "black"

    Aucun résultat

    "black" AND NOT "the"

    Accès à la ligne portant l'ID 1

Exemple

L'exemple suivant affecte la valeur 1 à transform noise words.

sp_configure 'show advanced options', 1;
RECONFIGURE;
GO
sp_configure 'transform noise words', 1;
RECONFIGURE;
GO

Voir aussi

Référence

CONTAINS (Transact-SQL)

Concepts

Options de configuration de serveur