Partager via


Expressions de jetons FQL

Dernière modification : vendredi 4 novembre 2011

S’applique à : SharePoint Server 2010

Dans cet article
Expressions génériques
Expressions numériques
Mots réservés et caractères spéciaux

Les expressions jetons sont des mots, expressions ou valeurs numériques qui sont mis en correspondance avec l’index.

Une expression jeton textuelle peut être un mot unique ou une expression placé entre guillemets doubles.

Une expression jeton numérique peut être une valeur numérique ou une expression de plage de valeurs.

Expressions génériques

Une expression générique indique un terme ou une expression qui inclut un ou plusieurs des caractères génériques suivants :

  • l’astérisque (« * »), qui indique la mise en correspondance de zéro caractère ou plus (espace non compris) ;

  • le point d’interrogation (« ? »), qui indique la mise en correspondance d’un caractère unique (espace non compris).

Le langage FQL (FAST Query Language) prend en charge la recherche par caractères génériques pour les propriétés gérées textuelles et les index de texte intégral.

Exemples d’expressions génériques

L’expression de requête suivante recherche les éléments qui contiennent le mot « Shakespeare » :

shak?sp*r*

Voici une liste d’utilisations valides des expressions génériques en langage FQL :

  • text*

  • *text

  • *text*

  • te?t

  • *te?t

  • string("this examp*")

  • string("this *ample")

  • string("this *ampl*")

  • string("this exam?le")

  • string("thi* exam?le")

Notes

Les exemples précédents illustrent une syntaxe valide d’expressions génériques. Évitez l’utilisation d’expressions qui correspondent à de nombreux mots de l’index, telles que celles commençant par un terme générique. De telles requêtes peuvent être utilisées quand vous interrogez les propriétés gérées avec une quantité de contenu limitée, mais que vous ne retournez généralement aucun résultat si la requête porte sur un index en texte intégral.

Les caractères génériques ne peuvent pas correspondre à des espaces. Le tableau suivant contient des exemples d’expressions génériques dont la mise en correspondance peut différer de celle attendue.

Tableau 1. Exemples d’expressions génériques et de leur correspondance avec le contenu

Requête

Ce qui ne correspond pas à la requête

string("this*examp*", mode="PHRASE")

string("this?example", mode="PHRASE")

"This example text shows wildcard terms"

Le terme générique n’est pas mis en correspondance avec l’espace.

string("Example?This", mode="PHRASE")

"Example:This is some text"

Le terme générique n’est pas mis en correspondance avec le signe deux-points. Ce dernier est traité comme un espace.

Si vous le souhaitez, vous pouvez utiliser les paramètres STRINGminexpansion et maxexpansion pour spécifier la plage de l’extension de caractère générique. Les expressions suivantes sont équivalentes.

any("prefix","prefix?","prefix??","prefix???","prefix????")

string("prefix*",maxexpansion=4)

Expressions numériques

Chaque expression numérique doit inclure une spécification de propriété d’un type de données de schéma d’index compatible. Le tableau suivant répertorie les types de données numériques qui peuvent être utilisés en langage FQL.

Tableau 2. Types de données numériques qui peuvent être utilisés en langage FQL

Type FQL

Types de schémas d’index compatibles

Description

Int

Integer

Entier 64 bits

float

Float

Decimal

Virgule flottante 64 bits (double précision)

Datetime

Datetime

Valeur de date et d’heure.

La prise en charge de date/heure en langage FQL permet d’effectuer les mêmes opérations sur des valeurs de date/heure que sur d’autres valeurs numériques.

Expressions de requête de date et d’heure

Le langage FQL fournit le type de données datetime pour la date et l’heure.

Les formats datetime suivants compatibles avec la norme ISO 8601 sont pris en charge dans les requêtes :

  • AAAA-MM-JJ

  • AAAA-MM-JJThh:mm:ss

  • AAAA-MM-JJThh:mm:ssZ

Dans ces formats datetime :

  • AAAA indique une année à quatre chiffres.

    Notes

    Seules les années à quatre chiffres sont prises en charge.

  • MM indique un mois à deux chiffres. Par exemple, 01 = janvier.

  • JJ indique un jour du mois à deux chiffres (de 01 à 31).

  • T indique la lettre « T ».

  • hh indique une heure à deux chiffres (de 00 à 23) ; l’indication A.M./P.M. n’est pas autorisée.

  • mm indique une minute à deux chiffres (de 00 à 59).

  • ss indique une seconde à deux chiffres (de 00 à 59).

Toutes les valeurs de date/heure doivent être spécifiées selon le fuseau horaire UTC (Temps universel coordonné), également appelé GMT (Greenwich Mean Time). L’identificateur de fuseau horaire UTC (caractère « Z » de fin) est facultatif.

Mots réservés et caractères spéciaux

Les mots suivants sont réservés en langage FQL.

and, or, any, andnot, count, decimal, rank, near, onear, int, in32, int64, float, double, datetime, max, min, range, phrase, scope, filter, not, string, starts-with, ends-with, equals, count

Si vous souhaitez exprimer l’un de ces mots comme terme dans une expression de requête, vous devez le placer entre guillemets doubles, comme illustré dans les exemples suivants :

  • or("any", "and", "rank")

  • string("any and rank", mode="OR")

  • phrase(this, is, a, "phrase")

ConseilConseil

Les mots et caractères réservés ne respectent pas la casse, mais l’utilisation de caractères minuscules est recommandée à des fins de compatibilité ultérieure.

La mise entre guillemets doubles d’une chaîne n’est pas toujours obligatoire en langage FQL. Par exemple, and(cat, dog) est valide en langage FQL, bien que cat et dog ne soient pas placés entre guillemets doubles. Toutefois, il est recommandé d’utiliser des guillemets doubles afin d’éviter tout conflit avec des mots réservés.

Les termes de requête sont tokenisés en fonction de vos paramètres régionaux. Le processus de segmentation du texte en unités lexicales supprime certains caractères spéciaux. Les caractères spéciaux étant supprimés, les expressions FQL suivantes sont équivalentes.

and("[king]", "<queen>")

and("king", "queen")

Lorsqu’une requête comprend des termes d’entrée utilisateur ou provenant d’une autre application, utilisez l’opérateur string("<query terms>", mode="AND|OR|PHRASE") pour éviter tout conflit avec des mots réservés dans le langage de requête. Vous devez également supprimer les éventuels guillemets doubles de la requête fournie par l’utilisateur.

Voir aussi

Concepts

Aperçu de l’intégration des requêtes FAST Search

Référence de la syntaxe du langage de requête FQL (FAST Query Language)

Spécification de propriété FQL

Opérateurs FQL (FAST Query Language)

Langage de requête simple FQL

Référence de la syntaxe FQL (ABNF)