Cet article a fait l'objet d'une traduction automatique. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte.
Traduction
Source
Ce sujet n'a pas encore été évalué - Évaluez ce sujet

Référence de syntaxe FAST Query Language (FQL)

En savoir plus sur la construction des requêtes de recherche complexes pour Recherche dans SharePoint 2013 à l'aide du langage FQL (FAST Query).Cette référence décrit les éléments d'une requête FQL et comment utiliser les spécifications de la propriété, les expressions jetons, les opérateurs et langage de requête simple dans vos requêtes FQL.

Le langage FQL (FAST Query) est un langage de requête puissante qui permet aux développeurs d'effectuer des recherches exacts et pour limiter l'étendue de votre recherche pour les valeurs qui appartiennent à une spécifique géré propriété ou un index de texte intégral.

Une expression de langage de requête peut contenir des sous-expressions imbriquées qui incluent des termes de requête, les spécifications de la propriété et les opérateurs, comme décrit dans le tableau 1.

Tableau 1.Sous-expressions dans des expressions de langage de requête

Item (Élément)

Description

Expressions jetons

Un ou plusieurs termes de requête, expressions ou valeurs numériques pour rechercher dans une requête.

Spécification de la propriété

Un index de texte intégral ou de la propriété pour la correspondance de l'expression concernée.

Opérateurs

Mots clés qui spécifient les opérations de type Boolean (par exemple, AND, OR) ou d'autres contraintes à des opérandes (telles que FILTER.)

Exemple de requête FQL

L'exemple de requête FQL suivant recherche les termes « hello » et « world » dans la propriété body géré d'un élément indexé :

body:string("hello world", mode="and")

Dans l'exemple :

  • body: limite la portée de la requête à la propriété body géré au sein de l'élément.

  • "hello world" est l'opérande de l'opérateur STRING , ce qui indique les termes à rechercher.

  • mode="and" indique que la requête logique opérateur AND sera appliqué à "hello world".

La longueur des requêtes FAST Query Language est limitée à 2 048 caractères.

Une spécification de la propriété limite la portée de l'expression affectée à des régions spécifiques du contenu indexé.Une zone de ce type peut être identifiée par un index de texte intégral ou une propriété gérée.

Propriétés gérées de type Text et Boolean sont exprimées en tant que texte.Tous les autres propriétés gérées types, y compris le type Datetime , sont exprimées en tant que valeurs numériques.

Si vous n'incluez pas une spécification de propriété d'une expression, le moteur de recherche essaie de faire correspondre l'index de texte intégral par défaut défini dans le schéma d'index.

La spécification de la propriété doit précéder toujours un signe deux-points (In opérateur) et les opérateurs numériques doivent toujours inclure une spécification de propriété.

Remarque importante Important

La spécification de la propriété doit être en caractères minuscules, même si le nom de la propriété gérée inclut les caractères en majuscules.

Une spécification de propriété (le In opérateur) peut être appliquée aux entités de requête suivantes :

  • Un terme unique ou une phrase, comme suit :

    title:shakespeare
    body:"to be or not to be"

  • Un opérateur, par exemple, le STRING , comme suit :

    body:string("to be or not to be")
    

    Dans ce cas la spécification de propriété s'applique à l'expression d'opérateur complète.

Examples

Chacune des éléments suivants d'établit une correspondance avec des expressions qui portent à la fois « une grande partie » et « rien » dans la title propriété gérée.

title:and(much, nothing)
and(title:much, title:nothing)
title:string("much nothing", mode="and")

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 prend en charge la recherche par caractères génériques pour les propriétés de texte individuels géré 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")

Note Remarque

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.

Des caractères génériques ne peut pas faire correspondre des espaces.Tableau 2 contient des exemples d'expressions à caractères génériques qui ne correspondent pas comme prévu.

Tableau 2.exemples d'expressions à caractères génériques et comment ils correspond au contenu

Serveur

Quelle requête ne correspond pas à

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 terme

Chaque expression numérique terme doit inclure une spécification de la propriété d'un type de données de schéma index pris en charge.Le tableau 3 répertorie les types de données numériques qui peuvent être utilisées dans le langage FQL.

Tableau 3.Types de données numériques qui peuvent être utilisées dans le langage FQL

Type FQL

Types de schéma 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 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

  • YYYY-MM-DDThh:mm:ssZ

Dans ces formats datetime :

  • AAAA indique une année à quatre chiffres.

    Note Remarque

    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", "xrank")

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

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

Conseil Conseil

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.

Les opérateurs FQL (FAST Query Language) sont des mots clés qui spécifient des opérations booléennes ou autres contraintes d’opérandes.La syntaxe d’opérateur FQL est la suivante :

[property-spec:]operator(operand [,operand]* [, parameter="value"]*)

Dans la syntaxe :

  • property-spec est une spécification de propriété facultative suivie de l’opérateur « in ».

  • operator est un mot clé qui spécifie une opération à effectuer.

  • operand est une expression de terme ou un autre opérateur.

  • parameter est le nom d’une valeur qui modifie le comportement de l’opérateur.

  • value est la valeur à utiliser pour le nom de paramètre.

Noms d'opérateurs, les noms des paramètres et les valeurs de texte de paramètre respectent pas la casse.Espace blanc est autorisé dans le corps de l'opérateur de téléphonie, mais est ignoré sauf qu'il soit placé entre guillemets doubles.La longueur des requêtes FAST Query Language est limitée à 2 048 caractères.

Tableau 4 répertorie les types d'opérateurs pris en charge par le langage FQL.

Tableau 4.Types d'opérateur FQL pris en charge

Type

Description

Opérateurs

Chaîne

Vous permet de spécifier des opérations de requêtes sur une chaîne de termes.Il s’agit de l’opérateur le plus couramment utilisé sur des termes textuels.

STRING

Booléenne

Vous permet de combiner des termes et des sous-expressions dans une requête.

ET, OR, ANY, ANDNOT, NOT, NB

Proximité

Vous permet de spécifier la proximité des termes de requêtes dans une séquence de texte correspondante.

NEAR, ONEAR, PHRASE, STARTS-WITH, ENDS-WITH, EQUALS

Numeric

Vous permet de spécifier des conditions numériques dans la requête.

RANGE, INT, FLOAT, DATETIME,

Pertinence

Vous permet d’affecter l’évaluation de pertinence d’une requête.

XRANKet FILTER

Tableau 5 fournit une liste des opérateurs pris en charge.

Tableau 5.Opérateurs FQL pris en charge

Opérateur

Description

Type

ET

Renvoie uniquement les éléments qui satisfont à tous les opérandes AND.

Booléenne

ANDNOT

Cette propriété renvoie uniquement les éléments qui satisfont au premier opérande et qui ne correspondent pas aux opérandes suivants.

Booléenne

ANY

Semblable à l’opérande OR, hormis le fait que le classement dynamique (le score de pertinence dans le jeu de résultats) n’est affecté ni par le nombre d’opérandes qui correspondent, ni par la distance entre les termes dans l’élément.

Booléenne

NB

Vous permet de spécifier le nombre d’occurrences de terme de requête qu’un élément doit inclure pour être renvoyé comme résultat.L’opérande peut être un terme de requête unique, une expression ou un terme de requête générique.

Booléenne

DATETIME

Fournit un typage explicite de valeurs numériques.

La conversion de type explicite est facultative et généralement non nécessaire.Le type du terme de requête est détecté en fonction du type de la propriété gérée numérique cible.

Numeric

ENDS-WITH

Spécifie qu’un mot ou une expression doit apparaitre à la fin d’une propriété gérée.

Proximité

EQUALS

Spécifie qu’un mot, un terme d'expression ou une expression doit fournir une correspondance de jeton exacte avec la propriété gérée.

Proximité

FILTER

Utilisé pour interroger des métadonnées ou autres données structurées.

Pertinence

FLOAT

Fournit un typage explicite de valeurs numériques.

La conversion de type explicite est facultative et généralement non nécessaire.Le type du terme de requête est détecté en fonction du type de la propriété gérée numérique cible.

Numeric

INT

Fournit un typage explicite de valeurs numériques.

La conversion de type explicite est facultative et généralement non nécessaire.Le type du terme de requête est détecté en fonction du type de la propriété gérée numérique cible.

Numeric

NEAR

Limite le jeu de résultats aux éléments qui ont N termes à une certaine distance les uns des autres.

Proximité

NOT

Booléenne

ONEAR

La variante ordonnée de NEARet nécessite une correspondance triée des termes.L'opérateur ONEAR peut être utilisé pour restreindre le jeu de résultats aux éléments ayant des termes du contrat de N une certaine distance de renvoie les seuls éléments qui ne correspondent pas aux l'opérande.L'opérande peut être tout expression.one FQL valide un autre.

Proximité

OR

Renvoie uniquement les éléments qui satisfont à au moins un des opérandes OR.Les éléments qui correspondent obtiennent un classement dynamique plus élevé (score de pertinence dans le jeu de résultats) si davantage d’opérandes OR sont satisfaits.

Booléenne

PHRASE

Renvoie uniquement les éléments qui correspondent à une chaîne de jetons exacte.

Proximité

RANGE

Autorise les expressions de mise en correspondance de plage.L’opérateur RANGE s’utilise pour les propriétés gérées numériques et de date/heure.

Numeric

STARTS-WITH

Spécifie qu’un mot ou une expression doit apparaitre au début d’une propriété gérée.

Proximité

STRING

Définit une condition de mise en correspondance booléenne à une chaîne de texte.

Chaîne

XRANK

Permet de vous permet d'amplifier le classement dynamique des éléments en fonction de certaines occurrences du terme sans modifier les éléments qui correspondent à la requête.Une expression XRANK contient un composant à mettre en correspondance et un ou plusieurs composants qui contribuent uniquement pour le classement dynamique.

Pertinence

Note Remarque

Dans SharePoint 2013, l'opérateur RANK est désapprouvé et n'est plus aura aucun effet.Utilisez XRANK à la place.

ET

Renvoie uniquement les éléments qui satisfont à tous les opérandes AND.Les opérandes peuvent être un terme unique ou toute sous-expression FQL valide.

Syntaxe

and(operand, operand [, operand]*)

Collection Parameters

Non applicable.

Examples

L'expression suivante correspond aux éléments dont l'index de texte intégral par défaut contient « chat », « dog » et « fox ».

and(cat, dog, fox)

ANDNOT

Cette propriété renvoie uniquement les éléments qui satisfont au premier opérande et qui ne correspondent pas aux opérandes suivants.Les opérandes peuvent être un terme unique ou toute sous-expression FQL valide.

Syntaxe

andnot(operand, operand [,operand]*)

Collection Parameters

Non applicable.

Examples

Exemple 1. L’expression suivante établit une correspondance avec les éléments pour lesquels l’index de texte intégral par défaut contient « cat », mais pas « dog ».

andnot(cat, dog)

Exemple 2. L’expression suivante établit une correspondance avec les éléments pour lesquels l’index de texte intégral par défaut contient « dog », mais ni « beagle » ni « chihuahua ».

andnot(dog, beagle, chihuahua)

ANY

Note Remarque

Dans SharePoint Server 2013, l'opérateur ANY est obsolète.Utilisez l'opérateur de OR au lieu de cela.

Semblable à l’opérande OR, hormis le fait que le classement dynamique (le score de pertinence dans le jeu de résultats) n’est affecté ni par le nombre d’opérandes qui correspondent, ni par la distance entre les termes dans l’élément.Les opérandes peuvent être un terme unique ou toute sous-expression FQL valide.

Le composant de classement dynamique pour cette partie de la requête est basé sur le terme de meilleure correspondance dans l’expression ANY.

Note Remarque

La différence par rapport à OR est uniquement liée au classement dans le jeu de résultat.Le même jeu total d’éléments correspondra à la requête.

Syntaxe

any(operand, operand [,operand]*)

Collection Parameters

Non applicable.

Examples

L'expression suivante correspond aux éléments dont l'index de texte intégral par défaut contient « chat » ou « dog ».

Si l’index contient à la fois « cat » et « dog », mais que « cat » est considéré comme une meilleure correspondance, le classement dynamique de l’élément est basé uniquement sur « cat » et « dog » n’est pas pris en compte.

any(cat, dog)

NB

Spécifie le nombre d’occurrences de terme de requête qu’un élément doit inclure pour être renvoyé comme résultat.L’opérande peut être un terme de requête unique, une expression ou un terme de requête générique.

Syntaxe

property-spec:count(operand [,from=<numeric value>, to=<numeric value>])

Collection Parameters

Parameter

Value

Description

From

<numeric_value>

La valeur du paramètre from doit être un entier positif qui spécifie le nombre minimal de fois que l’opérande spécifié doit être mis en correspondance.

Si le paramètre from n’est pas spécifié, aucune limite inférieure n’existe.

to

<numeric_value>

La valeur du paramètre to doit être un entier positif qui spécifie le nombre maximal (non inclus) de fois que l’opérande spécifié doit être mis en correspondance.Par exemple, une valeur to égale à 11 spécifie 10 fois ou moins.

Si le paramètre to n’est pas spécifié, aucune limite supérieure n’existe.

Examples

Exemple 1. L’expression suivante établit une correspondance avec au moins cinq occurrences du mot « cat ».

count(cat, from=5)

Exemple 2. L’expression suivante établit une correspondance avec entre cinq et neuf occurrences du mot « cat ».

count(cat, from=5, to=10)

Exemple 3. Chacune des expressions suivantes correspond au moins 3 occurrences d'un certain mot, et ce mot peut être « chat » ou « dog ».

count(or(cat, dog), from=3)count(string("cat dog", mode="or"), from=3)

Le tableau suivant contient des exemples de valeurs de chaîne de propriété gérée et indique si elles correspondent à deux expressions dans l'exemple 3.

Correspondance ?

Text

Yes

Mon chat aime mon chien, mais mon chien déteste mon chat.

No

Mon Triton est satisfait de mon oiseau, mais mon chien déteste mon chat.

DATETIME

Fournit un typage explicite de valeurs de date/heure.L’opérande est une chaîne de date/heure mise en forme conformément à la syntaxe spécifiée dans Expressions de jetons FQL.

La conversion de type explicite est facultative et généralement non nécessaire.Le type du terme de requête est détecté en fonction du type de la propriété gérée numérique cible.

Syntaxe

datetime(<date/time string>)

Collection Parameters

Non applicable.

ENDS-WITH

Spécifie qu’un mot ou une expression doit apparaitre à la fin d’une propriété gérée (correspondance de limite).

La correspondance de limite n’est pas prise en charge sur les propriétés gérées numériques.Celles-ci seront toujours soumises à une mise en correspondance exacte ou de plage de valeurs.

Certaines applications peuvent exiger que vous soyez en mesure d’effectuer une mise en correspondance exacte d’une propriété gérée.Par exemple, il peut s’agir d’une propriété gérée product name dans laquelle le nom complet d’un produit est une sous-chaîne d’un autre nom de produit.

Syntaxe

ends-with(<term or phrase>)

Collection Parameters

Non applicable.

Examples

L'expression suivante correspond aux éléments dont les valeurs « Mr Adam Jones » et « Adam Jones » dans la propriété gérée « author ».Il ne correspond pas à éléments dont la valeur « Adam Jones sr ».

author:ends-with("adam jones")

Note

La mise en correspondance de limite peut être appliquée à tout le texte de la propriété gérée ou à des chaînes spécifiques dans une propriété gérée qui contient une liste de valeurs de chaîne, par exemple une liste de noms.Dans ce cas, vous souhaiterez peut-être établir une correspondance avec le contenu exacte de chaque chaîne et éviter la mise en correspondance de requête à travers les limites de chaînes.

Pour appliquer des requêtes de mise en correspondance de limite, vous devez configurer la propriété gérée appropriée dans le schéma d’index.

L’activation de la fonctionnalité Mise en correspondance de limite pour la propriété gérée vous permet d’effectuer les opérations suivantes :

  • utiliser des requêtes de mise en correspondance de limite explicites ;

  • empêcher la mise en correspondance d'expressions à travers les limites de chaînes.Pour les propriétés gérées qui contiennent plusieurs chaînes, cette fonctionnalité permet de s’assurer qu’une chaîne n’est pas mise en correspondance avec des mots situés avant ou après une indication de limite.

EQUALS

Spécifie qu’un mot ou une expression doit fournir une correspondance de jeton exacte avec la propriété gérée.

Syntaxe

equals(<term or phrase>)

Collection Parameters

Non applicable.

Examples

L'exemple suivant sera correspondent aux éléments ayant des valeurs « Adam Jones » dans la propriété gérée « author ».Il ne correspond pas à éléments ayant des valeurs « Adam Jones sr » ou « Mr Adam Jones ».

author:equals("adam jones")

Note

Voir aussi ENDS-WITH.

FILTER

Utilisé pour interroger des métadonnées ou autres données structurées.

L’utilisation de l’opérateur FILTER implique automatiquement ce qui suit pour la requête spécifiée :

  • linguistics="OFF" ;

  • le classement sera désactivé ;

  • Aucune mise en surbrillance de requête ne sera utilisée dans le résumé de résultats pour le résultat de requête.

Conseil Conseil

Si vous utilisez l’opérateur STRING dans une expression FILTER, par défaut la linguistique est désactivée.Vous pouvez activer le traitement linguistique dans chaque expression STRING à l’intérieur de FILTER à l’aide de l’opérande linguistics="ON".

Syntaxe

filter(<any valid FQL operator expression>)

Collection Parameters

Non applicable.

Examples

L'expression suivante correspond aux éléments ayant une propriété Title gérés qui contient « Sonate » et une propriété Doctype gérés qui contient uniquement le jeton « audio ».Aucune correspondance linguistique ne doit être exécutée sur « audio ».Étant donné que le jeton FILTER serviront à faire correspondre « audio », que le texte n'est pas présentée dans le résumé.

and(title:sonata, filter(doctype:equals("audio")))

Note

Si vous devez restreindre votre requête de façon à établir une correspondance avec au moins une valeur parmi un grand ensemble de valeurs entières dans une propriété numérique, vous pouvez exprimer cela de deux manières fonctionnellement équivalentes :

  • and(string("hello world"), filter(property-spec:or(1, 20, 453, ..., 3473)))

  • and(string("hello world"), filter(property-spec:int("1 20 453 ...3473", mode="or")))

Le second exemple utilise l’opérateur INT en plaçant une chaîne avec l’ensemble de valeurs numériques entre guillemets doubles.Cela augmente sensiblement les performances de requête lors du filtrage avec un grand ensemble de valeurs numériques.

Si vous devez utiliser un grand ensemble de valeurs, utilisez des valeurs numériques plutôt que des valeurs de chaîne et exprimez vos quantités à l’aide de la syntaxe optimisée.

FLOAT

Fournit un typage explicite de valeurs numériques à virgule flottante.L'opérande est un flottante valeur en fonction de la syntaxe spécifiée dans Expressions jetons en langage FQLdu point.

La conversion de type explicite est facultative et généralement non nécessaire.Le type du terme de requête est détecté en fonction du type de la propriété gérée numérique cible.

Syntaxe

float(<floating point value>)

Collection Parameters

Non applicable.

INT

Fournit un typage explicite de valeurs de type integer.L'opérande est une valeur entière en fonction de la syntaxe spécifiée dans Expressions jetons en langage FQL.

La conversion de type explicite est facultative et généralement non nécessaire.Le type du terme de requête est détecté en fonction du type de la propriété gérée numérique cible.

L’opérateur INT peut également servir à exprimer un ensemble de valeurs entières comme arguments d’opérateurs FQL booléens.Cela constitue un moyen efficace de fournir un ensemble de valeurs entières dans une requête, car les valeurs passées à l’aide de l’opérateur INT ne sont pas analysées par l’analyseur de requête FQL mais passées directement au composant de mise en correspondance de requête.

Syntaxe

int(<integer value>)

int("value, value, … , value")

La première syntaxe spécifie un seul entier.La deuxième syntaxe spécifie une liste de valeurs entières séparées par des virgules et placées entre guillemets doubles.

Collection Parameters

Non applicable.

Examples

Si vous souhaitez limiter l'accès votre requête pour correspondre au moins l'un d'un grand ensemble de valeurs de type integer dans une propriété numérique, vous pouvez cela exprimer à l'aide de l'opérateur de téléphonie INT :

and(string("hello world"), filter(id:int("1 20 49 124 453 985 3473", mode="or")))

NEAR

Limite le jeu de résultats aux éléments qui ont N termes à une certaine distance les uns des autres.

L’ordre des termes de requête n’a aucune importance pour la mise en correspondance.Seule la distance importe.

Une quantité quelconque de termes peuvent être combinés avec les opérateurs NEAR.

Les opérandes NEAR peuvent être des termes uniques, des phrases ou des expressions à opérateur booléen OR ou ANY.Les caractères génériques sont acceptés.

Si plusieurs opérandes de l’opérateur NEAR correspondent au même jeton indexé, ils sont considérés comme proches les uns des autres.

Syntaxe

near(arg, arg [, arg]* [, N=<numeric value>])

Collection Parameters

Parameter

Value

Description

N

<numeric_value>

Spécifie la quantité maximale de mots autorisée à figurer entre les termes (proximité explicite).

Si NEAR inclut plus de deux opérandes, la quantité maximale de mots autorisée entre les termes (N) est comptée à l’intérieur de l’expression entière.

Par défaut : 4

Examples

Exemple 1. L’expression suivante établit une correspondance avec les chaînes qui contiennent à la fois « cat » et « dog » si ces deux termes ne sont pas séparés de plus de quatre jetons indexés (valeur par défaut).

near(cat, dog)

Exemple 2. L’expression suivante établit une correspondance avec les chaînes qui contiennent « cat », « dog », « fox » et « wolf » si ces termes ne sont pas séparés de plus de quatre jetons indexés.

near(cat, dog, fox, wolf)

Le tableau suivant contient des exemples de valeurs de chaîne de propriété gérée et indique si elles correspondent à l’expression précédente dans l’Exemple 2.

Correspondance ?

Text

Yes

The picture shows a cat, a dog, a fox, and a wolf.

Oui (avec recherche de radical)

Dogs, foxes, and wolves are canines, but cats are felines.

No

The picture shows a cat with a dog, a fox, and a wolf.

L’expression suivante établit une correspondance avec toutes les chaînes du tableau ci-dessus.

near(cat, dog, fox, wolf, N=5)

Exemple 3. L’expression suivante établit une correspondance avec une propriété gérée qui contient uniquement le jeton indexé « clarinet » car « c*t » et « clarinet » correspondent tous deux et sont considérés comme proches l’un de l’autre, même si les deux jetons de recherche correspondent au même jeton indexé.

near("c*t", "clarinet")

Note

Considérations relatives à la distance entre les termes NEAR/ONEAR

N indique la quantité maximale de mots autorisée à figurer entre les termes de requête dans le segment de mise en correspondance de l’élément.Si NEAR ou ONEAR inclut plus de deux opérandes, la quantité maximale de mots autorisée à figurer entre les termes de requête (N) est comptée à l’intérieur du segment de l’élément correspondant à tous les termes NEAR ou ONEAR.

NEAR ou ONEAR opère sur du texte sous forme de jeton.Cela signifie que les caractères spéciaux tels que les virgules (« , »), les points (« . »), les signes deux-points (« : »), et les points virgules (« ; ») sont traités comme des espaces.Le terme « distance » fait référence aux jetons dans le texte indexé.

Si vous utilisez ONEAR ou NEAR avec des opérandes égaux, l’opérateur fonctionne comme suit :

near(a, a, n=x)

Cette requête renverra toujours la valeur true si au moins une instance de « a » apparaît dans le contexte.Cela signifie également que NEAR ne peut pas être utilisé comme opérateur COUNT.Pour plus d’informations sur le comptage des occurrences de termes, voir l’opérateur NB.

NEAR appliqué à des expressions établit également une correspondance avec des expressions qui se chevauchent dans le texte.

Si un jeton dans le segment de correspondance met en correspondance plus d’un opérande avec l’expression NEAR ou ONEAR, la requête peut correspondre même si le nombre de jetons ne correspondant pas dans le segment de correspondance dépasse la valeur de « N » dans l’expression d’opérateur NEAR ou ONEAR.Par exemple, un chevauchement peut être constitué par des expressions qui se chevauchent.Si le nombre de correspondances de chevauchement de jeton est « O », la requête correspond si pas plus de « N+O » jetons non correspondants figurent dans le segment de correspondance de l’élément.

NEAR ou ONEAR avec NOT

L’opérateur NOT ne peut pas être utilisé à l’intérieur de l’opérateur NEAR ou ONEAR.La syntaxe FQL suivante est incorrecte :

near(audi,not(bmw),n=2)

NOT

Cette propriété renvoie uniquement les éléments qui ne correspondent pas aux l'opérande.L'opérande peut être n'importe quelle expression FQL valide.

Syntaxe

not(operand)

Collection Parameters

Non applicable.

ONEAR

Variant ordonnancé de NEAR qui requiert une correspondance ordonnancée des termes.L’opérateur ONEAR peut être utilisé pour restreindre le jeu de résultats aux éléments qui ont N termes à une certaine distance les uns des autres.

Syntaxe

onear(arg, arg [, arg]* [, N=<numeric value>])

Collection Parameters

Parameter

Value

Description

N

<numeric_value>

Spécifie la quantité maximale de mots autorisée à figurer entre les termes (proximité explicite).

Si ONEAR inclut plus de deux opérandes, la quantité maximale de mots autorisée entre les termes (N) est comptée à l’intérieur de l’expression entière.

Par défaut : 4

Examples

Exemple 1. L’expression suivante établit une correspondance avec toutes les occurrences des mots « cat », « dog », « fox » et « wolf » qui apparaissent dans l’ordre, si ces termes ne sont pas séparés de plus de quatre jetons indexés.

onear(cat, dog, fox, wolf)

Le tableau suivant contient des exemples de valeurs de chaîne de propriété gérée et indique si elles correspondent à l’expression précédente.

Correspondance ?

Text

Yes

The picture shows a cat, a dog, a fox, and a wolf.

No

Dogs, foxes, and wolves are canines, but cats are felines.

No

The picture shows a cat with a dog, a fox, and a wolf.

Exemple 2. L’expression suivante établit une correspondance (avec recherche de radical) avec le texte figurant sur la deuxième ligne du tableau précédent.

onear(dog, fox, wolf, cat, N=5)

Exemple 3.L’expression suivante établit une correspondance avec le texte des première et troisième ligne du tableau précédent.

onear(cat, dog, fox, wolf, N=5)

Note

Voir aussi NEAR.

OR

Renvoie uniquement les éléments qui satisfont à au moins un des opérandes OR.Les éléments qui correspondent obtiennent un classement dynamique plus élevé (score de pertinence dans le jeu de résultats) si davantage d’opérandes OR sont satisfaits.Les opérandes peuvent être un terme unique ou toute sous-expression FQL valide.

Syntaxe

or(operand, operand [,operand]*)

Collection Parameters

Non applicable.

Examples

L'expression suivante correspond à tous les éléments pour lesquels l'index de texte intégral par défaut contient « chat » ou « dog ».Si l'index de texte intégral par défaut d'un élément contient à la fois « cat » et « dog », il sera concordance et ont un classement dynamique plus élevé que s'il contenait un des jetons.

or(cat, dog)

PHRASE

Recherche une chaîne de jetons exacte.

Les opérandes PHRASE peuvent être des termes uniques.Les caractères génériques sont acceptés.

Syntaxe

phrase(term [, term]*)

Collection Parameters

Non applicable.

Note

Voir aussi STRING.

RANGE

Utilisez l’opérateur RANGE pour les propriétés gérées numériques et de date/heure.L’opérateur autorise les expressions de correspondance de plage.

Syntaxe

range(start, end [,from="GE"|"GT"] [,to="LE"|"LT"])

Collection Parameters

Parameter

Value

Description

start

<numeric_value>|<date/time_value>

Valeur de départ de la plage.

Pour indiquer que la plage n’a pas de limite inférieure, utilisez le mot réservé min.

stop

<numeric_value>|<date/time_value>

Valeur de fin de la plage.

Pour indiquer que la plage n’a pas de limite supérieure, utilisez le mot réservé max.

from

GE|GT

Paramètre facultatif qui indique l’intervalle de début ouvert ou fermé.

Valeurs valides :

  • GE Supérieure ou égale à la valeur de début (> = début de l'intervalle).

  • GT Supérieur à la valeur de début (> début de l'intervalle).

Par défaut : GE

to

LE|LT

Paramètre facultatif qui indique l’intervalle de fin ouvert ou fermé.

Valeurs valides :

  • LE Inférieur ou égal à la valeur de fin (< = fin de l'intervalle).

  • LT La valeur inférieure à la fin (< fin de l'intervalle).

Par défaut : LT

Examples

L'expression suivante correspond à une propriété de description commençant par la phrase « jeux » qui apparaissent dans les éléments dont la taille au moins 10 000 octets.

and(size:range(10000, max), description:starts-with("olympic games"))

STARTS-WITH

Spécifie un mot ou une expression qui doit apparaitre au début d’une propriété gérée.

Syntaxe

starts-with(<term or phrase>)

Collection Parameters

Non applicable.

Examples

L'expression suivante correspondront des éléments avec les valeurs « Adam Jones sr » et « Adam Jones » dans la author de propriété gérée.Il ne correspond pas à éléments dont la valeur « Mr Adam Jones ».

author:starts-with("adam jones")

Note

Pour plus de remarques sur la correspondance de limite, voir ENDS-WITH.

STRING

Définit une condition de mise en correspondance booléenne à une chaîne de texte.

L’opérande est une chaîne de texte (un ou plusieurs textes) à mettre en correspondance.La chaîne est suivie de zéro ou plusieurs paramètres.

L’opérateur STRING peut également être utilisé comme conversion de type.La requête string("24.5"), par exemple, traite la valeur numérique « 24.5 » comme une chaîne de texte.

Syntaxe

string("<text string>"

      [, mode=<mode>]

      [, n=<near>]

      [, weight=<n>]

      [, linguistics=<on|off>]

      [, wildcard=<on|off>]

      [, minexpansion=<n>]

      [, maxexpansion=<n>]

      [, annotation_class=<annotation_string>])

Collection Parameters

Parameter

Value

Description

mode

<mode>

Le paramètre mode indique comment évaluer la valeur <text string>.Le tableau suivant montre les valeurs possibles.

Mode

Expression d'opérateur équivalente

"PHRASE"

phrase(term [,term]*)

"AND"

and(term, term [,term]*)

"OR"

or(term, term [,term]*)

"ANY"

any(term, term [,term]*)

"NEAR"

near(term, term [,term]*, N)

"ONEAR"

onear(term, term [,term]*, N)

"SIMPLEALL"

La chaîne est formatée selon le langage de requête simple la syntaxe « ALL ».Pour plus d'informations, voir FQL Simple Query Language.

"SIMPLEANY"

La chaîne est formatée selon le langage de requête simple la syntaxe « ANY ».Pour plus d'informations, voir FQL Simple Query Language.

Default: "PHRASE"

n

<numeric_value>

Ce paramètre indique la distance de terme maximale pour mode="NEAR" ou mode="ONEAR".

Les expressions suivantes sont équivalentes.

string("hello world", mode="NEAR", n=5)

near(hello, world, n=5)

Par défaut : 4

weight

<numeric_value>

Ce paramètre est une valeur numérique positive indiquant le poids de terme pour le classement dynamique.

Une valeur inférieure indique qu’un terme doit moins contribuer au classement.Une valeur supérieure indique qu’un terme doit plus contribuer au classement.Une valeur de paramètre de poids nulle indique qu’un terme ne doit pas affecter le classement dynamique.

Le paramètre weight s’applique à tous les termes dans l’expression STRING.

Conseil Conseil

Le paramètre de poids affecte uniquement les requêtes d’index de texte intégral.

Par défaut : 100

linguistics

on|off

Désactive/active toutes les fonctionnalités linguistiques pour la chaîne (lemmatisation, synonymes, vérification de l’orthographe) si elles sont activées pour la requête.

Vous pouvez utiliser ce paramètre pour désactiver le traitement linguistique pour un terme ou une chaîne donné(e) lorsque vous souhaitez que ce terme ou cette chaîne contribue tout de même au classement.

Par défaut : « ON »

wildcard

on|off

Ce paramètre contrôle l’extension de caractère générique des termes à l’intérieur de <text string>.Il remplace tout paramètre générique dans les paramètres de requête et autorise l’activation ou la désactivation des caractères génériques étendus sur des parties spécifiques de la requête.

Les valeurs suivantes sont valides :

  • "ON" Spécifie que les caractères «?» et «*» sont évalués comme caractères génériques.Un caractère «?» correspond à n'importe quel caractère unique et un caractère «*» correspond à zéro ou plusieurs caractères.

  • "OFF" Indique que les caractères « NSFINAL » et « * » ne sont pas évalués comme des caractères génériques.

Par défaut : « ON »

minexpansion

<positive_integer>

Ce paramètre définit la longueur minimale d’une sous-chaîne dans l’extension de caractère générique.

La valeur <string> doit être une expression générique avec un seul astérisque.

Par défaut : 0

maxexpansion

<positive_integer>

Ce paramètre définit la longueur maximale d’une sous-chaîne dans l’extension de caractère générique.

La valeur <string> doit être une expression générique avec un seul astérisque.

Par défaut : infinie

annotation_class

<annotation_string>

Le paramètre STRINGannotation_class="user" sert à annoter un nœud STRING pour indiquer qu’il s’agit d’un nœud généré par l’utilisateur.

Certaines fonctionnalités de pertinence sont appliquées uniquement à la partie de la requête générée par l’utilisateur.Cela comprend l’amplification de requête basée sur le texte d’ancrage et les journaux de requête de clics.

Examples

Exemple 1. Le mode de chaîne par défaut étant « PHRASE », chacune des expressions suivantes renvoie le même résultat.

"what light through yonder window breaks"string("what light through yonder window breaks")string("what light through yonder window breaks", mode="phrase")phrase(what, light, through, yonder, window, breaks)

Exemple 2. L’expression de jeton de chaîne suivante et l’expression d’opérateur AND renvoient les mêmes résultats.

string("cat dog fox", mode="and")and(cat, dog, fox)

Exemple 3. L’expression de jeton de chaîne suivante et l’expression d’opérateur OR renvoient les mêmes résultats.

string("coyote saguaro", mode="or")or(coyote, saguaro)

Exemple 4. L’expression de jeton de chaîne suivante et l’expression d’opérateur ANY renvoient les mêmes résultats.

string("coyote saguaro", mode="any")any(coyote, saguaro)

Exemple 5. L’expression de jeton de chaîne suivante et l’expression d’opérateur NEAR renvoient les mêmes résultats.

string("coyote saguaro", mode="near")near(coyote, saguaro)

Exemple 6. L’expression de jeton de chaîne suivante et l’expression d’opérateur NEAR renvoient les mêmes résultats.

string("cat dog fox wolf", mode="near", N=4)near(cat, dog, fox, wolf, N=4)

Exemple 7. L’expression de jeton de chaîne suivante et l’expression d’opérateur ONEAR renvoient les mêmes résultats.

string("cat dog fox wolf", mode="onear")onear(cat, dog, fox, wolf)

Exemple 8. Les caractères de guillemets ("?") et d’astérisque ("*") étant évalués comme des caractères génériques, les expressions de jetons de chaînes suivantes établissent une correspondance avec « cat », « cot » et tout autre jeton indexé à trois lettres commençant par « c » et se terminant par « t ».

string("c?t")string("c*t")

Exemple 9. L’expression de jeton de chaîne suivante établit une correspondance avec le mot « nobler » avec les fonctionnalités linguistiques désactivées ; les autres formes du mot (telles que « ennobling ») ne sont par conséquent pas mises en correspondance avec la recherche de radical.

string("nobler", linguistics="off")

Exemple 10. L’expression suivante établit une correspondance avec des éléments qui contiennent « cat » ou « dog », mais elle augmente davantage le classement dynamique des éléments qui contiennent « dog » que le classement des éléments qui contiennent « cat ».

or(string("cat", weight="200"), string("dog", weight="500"))

Exemple 11. L’expression suivante établit une correspondance avec tous les termes commençant par « prefix » et se terminant par « suffix », où la sous-chaîne entre « prefix » et « suffix » a une longueur maximale de quatre caractères.

string("prefix*suffix",maxexpansion=4)

Exemple 12. L’expression de jeton de chaîne suivante établit une correspondance avec les mots « microsoft corporation » .L’ajout du paramètre annotation_class permet de s’assurer que les éléments avec exactement le même texte d’ancrage dans un lien pointant vers l’élément bénéficieront d’une amplification supplémentaire du classement.

string("Microsoft corporation", annotation_class="user")

Note

Poids de pertinence pour le classement dynamique

La principale incidence du paramètre weight concerne les requêtes OR.Il peut également avoir un impact sur les requêtes AND.L’algorithme de classement dynamique peut signifier que différents termes apportent différentes contributions au classement en fonction de l’emplacement où la correspondance de terme a été établie dans l’élément.

La différence de contribution au classement peut également être basée sur la fréquence de terme et la fréquence d’élément inverse.Voici un exemple :

  • Requête : and(string("a"), string("b", weight=200))

  • Schéma d’index : la propriété gérée title a davantage de poids que la propriété gérée body.

  • L’élément d’index 1 contient le terme ’a’ dans le titre et le terme ’b’ dans le corps.

  • L’élément d’index 2 contient le terme ’a’ dans le corps et le terme ’b’ dans le titre.

Dans cet exemple, l’élément 2 obtiendra le classement total le plus élevé car les éléments ayant une contribution au classement dynamique plus élevée bénéficient d’une amplification supérieure.

Conseil Conseil

L’amplification de terme relative (positive ou négative) est appliquée au composant de classement dynamique du classement total.Toutefois, les calculs de classement d’amplification de proximité (distance entre les mots) ne sont pas affectés par le poids des termes.Le poids relatif ne signifie pas toujours que le classement total de l’élément est modifié en fonction du pourcentage donné.

La requête suivante recherche les termes « peter », « paul », ou « mary », où « peter » aura une contribution au classement deux fois supérieure à celle des deux autres termes.

or(peter, string("paul mary", mode="OR", weight=50))

Gestion des chaînes avec caractères spéciaux

Les caractères spéciaux tels que virgule (« , »), point virgule (« ; »), signe deux-points (« : »), point (« . »), signe moins (« - »), souligné (« _ ») ou barre oblique (« /" ») sont traités comme des espaces à l’intérieur d’une expression de chaîne placée entre guillemets double.Ceci est lié au processus de segmentation du texte en unités lexicales.Ces caractères impliquent également une formulation implicite des jetons séparés par ces caractères.

Les expressions de requête suivantes sont équivalentes.

title:string("animals birds", mode="phrase")title:"animals/birds"title:string("animals/birds", mode="and")title:string("animals/birds", mode="or")

Les expressions de requête suivantes sont équivalentes.

title:or(string("animals birds", mode="phrase"), string("animals insects", mode="phrase"))title:string("animals/birds animals/insects", mode="or")

Les expressions de requête suivantes sont équivalentes.

body:string("help contoso com", mode="phrase")body:string("help@contoso.com")

Mise en correspondance d'expression sous forme de jeton

Vous pouvez rechercher une chaîne exacte de jetons à l’aide de l’opérateur STRING avec mode="phrase" ou à l’aide de l’opérateur PHRASE.

Toutes ces opérations d'expression impliquent une correspondance d'expression sous forme de jeton.Cela signifie que les caractères spéciaux tels que la virgule (« , »), le point-virgule (« ; »), le signe deux points (« : »), le soulignement (« _ »), le signe moins (« - ») et la barre oblique (« / ») sont traités comme des espaces.Ceci est lié au processus de segmentation du texte en unités lexicales.

XRANK

Augmente le classement dynamique des éléments en fonction de certaines occurrences de termes dans la match expression, sans modifier les éléments qui correspondent à la requête.XRANK expression se compose d'un composant à mettre en correspondance, le match expressionet un ou plusieurs composants qui contribuent uniquement à dynamique classement, le rank expression.Au moins l' un des paramètres, à l'exclusion de n, doit être spécifiée pour une expression XRANK pour être valide.

Match expressions est peut-être toute expression FQL valide, y compris des expressions imbriquées XRANK .Rank expressions peut être n'importe quelle expression FQL valide.

Note Remarque

Dans SharePoint Server 2010, l'opérateur XRANK avait deux paramètres : boost et boostall, ainsi que la syntaxe suivante : xrank(operand, rank-operand [, rank-operand]* [,boost=n] [,boostall=yes]).Cette syntaxe ainsi que ses paramètres est désapprouvée dans SharePoint Server 2013.Nous recommandons l'utilisation de la nouvelle syntaxe et les paramètres à la place.

Syntaxe

xrank(<match expression> [, <rank-expression>]*, rank-parameter[, rank-parameter]*)

Formula

Formule pour opérateur XRANK

Collection Parameters

Parameter

Value

Description

N

<integer_value>

Spécifie le nombre de résultats à calculer les statistiques de.

Ce paramètre n'affecte pas le nombre de résultats qui le classement dynamique contribue à ; Il est simplement un moyen pour exclure les éléments inutiles les calculs de statistiques.

Valeur par défaut: 0.une valeur zéro exécute sematic de tous les documents.

Nb

<float_value>

Le paramètre nb fait référence à amplification normalisée.Ce paramètre spécifie le facteur est multiplié avec le produit de la partition de variance et moyenne des valeurs de rang du jeu de résultats.

f dans la formule XRANK.

En règle générale normalisée amplification, nb, est le seul paramètre est modifié.Ce paramètre fournit le contrôle nécessaire pour mettre en forme abaisser d'un élément particulier, sans tenir compte d'écart-type.

Paramètres avancés

Les paramètres d'avancées suivantes sont également disponibles.Cependant, généralement ils ne sont pas utilisés.

Parameter

Value

Description

cb

<float_value>

Le paramètre cb fait référence à la constante amplification.

Par défaut : 0

a dans la formule XRANK.

stdb

<float_value>

Le paramètre stdb fait référence à l'écart-type amplification.

Par défaut : 0

e dans la formule XRANK.

avgb

<float_value>

Le paramètre avgb fait référence à la moyenne amplification.Ce facteur est multiplié par la valeur de rang moyenne du jeu de résultats.

Par défaut : 0

d dans la formule XRANK.

rb

<float_value>

Le paramètre rb fait référence à amplification de la plage.Ce facteur est multiplié par la plage de valeurs de classement dans le jeu de résultats.

Par défaut : 0

b dans la formule XRANK.

pb

<float_value>

Le paramètre pb fait référence à amplification de pourcentage.Ce facteur est multiplié par le classement de l'élément par rapport à la valeur minimale dans le corpus.

Par défaut : 0

c dans la formule XRANK.

Examples

Exemple 1. L'expression suivante correspond aux éléments dont l'index de texte intégral par défaut contient « chat » ou « dog ».L'expression augmente le classement dynamique de ces éléments avec une constante amplification de 100 pour les éléments qui contiennent également « pur-sang ».

xrank(or(cat, dog), thoroughbred, cb=100)

Exemple 2. L'expression suivante correspond aux éléments dont l'index de texte intégral par défaut contient « chat » ou « dog ».L'expression augmente le classement dynamique de ces éléments avec une amplification normalisé de 1,5 pour les éléments qui contiennent également « pur-sang ».

xrank(or(cat, dog), thoroughbred, nb=1.5)

Exemple 3. L'expression suivante correspond aux éléments dont l'index de texte intégral par défaut contient « chat » ou « dog ».L'expression augmente le classement dynamique de ces éléments avec une constante amplification de 100 et une amplification normalisée de 1,5, pour les éléments qui contiennent également « pur-sang ».

xrank(or(cat, dog), thoroughbred, cb=100, nb=1.5)

Note Remarque

Dans SharePoint Server 2013, la fonctionnalité de langage de requête Simple est déconseillée.

La prise en charge de langage de requête Simple permet de créer des zones de recherche avec des opérateurs simples, telles que celles qui se trouvent dans des moteurs de recherche courantes sur le Web.Cela inclut la prise en charge de la combinaison de mots ou expressions et mixage AND, ORet NOT de manière plus simple qu'en utilisant la syntaxe de requête FQL (FAST Language) plus formelle.

Ce format est pris en charge dans la syntaxe de l'opérateur STRING, comme suit.

string("<simple query language expression>", mode="simpleall")
string("<simple query language expression>", mode="simpleany")
  • simpleall: une logique AND est appliquée entre des termes et les expressions dans la zone <simple query language expression>, à moins que les termes du contrat est précédé avec un signe moins caractère («-»).

  • simpleany: une logique OR est appliquée entre des termes et les expressions dans la zone <simple query language expression>, à moins que les termes du contrat est précédé avec un signe plus («+») ou moins caractère («-»).

Les termes ou les expressions dans les <simple query language expression> doivent être séparées par un espace blanc.

Si le <simple query language expression> contient une phrase, les guillemets doubles doivent être précédées par le caractère barre oblique inverse («\»).Par exemple, si un utilisateur entre par la requête “king lear” shakespeare, l'opérateur de téléphonie de STRING FQL qui en résulte doit être formaté comme suit :

string("\"king lear\" shakespeare", mode="simpleall|simpleany")

La longueur des requêtes FAST Query Language est limitée à 2 048 caractères.

Mode SIMPLEALL

Mode de SIMPLEALL (mode="simpleall") signifie que tous les termes de requête ou expressions (séparées par des espaces blancs) doivent être mis en correspondance dans les documents renvoyés.Cela est égale à une logique AND entre les termes ou les expressions.Cette valeur par défaut en mode de mise en correspondance peut être remplacé en utilisant le préfixe signe plus («+») ou moins («-»), comme décrit dans le tableau suivant.

Prefixe

Description

+

Ce préfixe est autorisé, mais ignoré.

Les expressions suivantes sont équivalentes et renvoyer tous les documents qui incluent des « goethe » et « faust » :

+faust +goethe

+faust goethe

faust +goethe

faust goethe

-

Ce préfixe s'applique une logique NOT à l'expression suivante.

L'expression suivante renvoie tous les documents qui incluent des « goethe » et « faust », mais n'est pas si ces documents contiennent également « marlowe » :

goethe faust -marlowe

Note Remarque

Les espaces ne sont pas autorisés entre le «+ » ou « » caractère et le suivant terme ou une expression.

Mode SIMPLEANY

Mode SIMPLEANY (mode="simpleany") signifie qu'au moins un des termes de requête ou des expressions (séparées par des espaces blancs) doit être mis en correspondance dans les documents renvoyés.Cette valeur par défaut en mode de mise en correspondance peut être remplacé par à l'aide de «+» ou « -» comme décrit dans le tableau suivant.

À l'aide de ce mode correspond à l'aide du paramètre de requête booléenne OR .Dans mode="simpleany" un des termes de requête ou des expressions doit être mis en correspondance si aucun + ou les opérateurs sont appliquées (seulement un ou plusieurs termes séparées par des espaces blancs.)

Prefixe

Description

+

Le terme ou suit une phrase que le «+» doit être mis en correspondance (logique AND).

Exemples

L'expression suivante renvoie tous les documents qui incluent des « goethe » et « faust » :

+faust +goethe

L'expression suivante renvoie tous les documents qui incluent des « faust ».Les documents qui contiennent également « goethe » obtenir une meilleure classement dynamique et apparaissent plus élevées dans le jeu de résultats :

+faust goethe

L'expression suivante renvoie tous les documents qui incluent des « shakespeare ».Les documents qui également incluent la phrase « roi lear » obtenir une meilleure classement dynamique et apparaissent plus élevées dans le jeu de résultats :

\"king lear\" +shakespeare

-

Ce préfixe s'applique une logique NOT à l'expression suivante.

Exemples

L'expression suivante renvoie tous les documents qui incluent des « goethe » AND « faust », mais NOT si ces documents contiennent également « marlowe » :

+goethe +faust -marlowe

L'expression suivante renvoie tous les documents qui contiennent « goethe », mais n'est pas si ces documents contiennent également « marlowe ».Les documents qui comprennent également « faust » obtenir une meilleure classement dynamique et par conséquent apparaissent plus élevées dans le jeu de résultats :

+goethe faust -marlowe

L'expression suivante est un cas spécial qui sont évalué à l'aide d'une estimation :

faust -marlowe

Il est évalué comme suit :

andnot(faust, marlowe)

Note Remarque

Les espaces ne sont pas autorisés entre le «+» ou «» caractère et le suivant terme ou une expression.

La structure d'une expression de requête FQL (FAST Language) correspond aux règles suivantes, qui sont conformes à la syntaxe de la forme de Backus Naur augmentée (ABNF).

Pour des raisons de lisibilité, les règles supposent qu'aucun espace supplémentaire n'existe dans l'expression FQL.Toutefois, le langage FQL autorise-t-elle espace blanc doit précéder et suivre les parenthèses, des virgules, des opérateurs, des mots clés et des jetons immédiatement.

Bien que ABNF ne prend pas explicitement en n'importe quel codage autre qu'US-ASCII, quoted-string-value et unquoted-string-value types de données des valeurs de caractère large prise en charge qui ont le codage UTF-8.

fql-expression  = (operator-expression / paren-expression / token)

operator-expression = [in-expression] (and / andnot / any / or / rank
    / xrank / near / onear / not / equals / filter / starts-with
    / ends-with / count)

paren-expression = [in-expression] "(" fql-expression ")"

token = [in-expression] (datetime-token / float-token / int-token
    / phrase-token / range-token / string-token)

; Operator expressions
and = "and" "(" multiple-fql-params ")"
andnot = "andnot" "(" multiple-fql-params ")"
any = "any" "(" multiple-fql-params ")"
or = "or" "(" multiple-fql-params ")"

rank = "rank" "(" rank-param *("," rank-param) ")"
rank-param = token / fql-expression

xrank = "xrank" "(" xrank-param *("," xrank-param) ")"
xrank-param = ("boost" "=" integer-value)
    / ("boostall" "=" yesno-value)
    / fql-expression

near = "near" "(" near-param *("," near-param) ")"
near-param = ("N" "=" token-distance) / fql-expression

onear = "onear" "(" onear-param *("," onear-param) ")"
onear-param = ("N" "=" token-distance) / fql-expression

not = "not" "(" fql-expression ")"

count = ("count" "(" token
    1*("," (("from" "=" int-token) / ("to" "=" int-token))) ")")

equals = "equals" "("
    [in-expression] (string-token / phrase-token) ")"
starts-with = "starts-with" "("
    [in-expression] (string-token / phrase-token) ")"
ends-with = "ends-with" "("
    [in-expression] (string-token / phrase-token) ")"
filter = "filter" "(" fql-expression ")"

; Token operator expressions
phrase-token = "phrase" "(" phrase-token-param
    *("," phrase-token-param) ")"
phrase-token-param = ("weight" "=" unsigned-integer-value)
    / ("linguistics" "=" onoff-value)
    / ("wildcard" "=" onoff-value)
    / token

string-token = explicit-string-token / implicit-string-token
explicit-string-token = "string" "(" string-token-param
    *("," string-token-param) ")"
string-token-param = ("mode" "=" mode-value)
    / ("N" "=" token-distance)
    / ("weight" "=" integer-value)
    / ("minexpansion" "=" integer-value)
    / ("maxexpansion" "=" integer-value)
    / ("linguistics" "=" onoff-value)
    / ("wildcard" "=" onoff-value)
    / token
implicit-string-token = string-value

float-token = explicit-float-token / implicit-float-token
explicit-float-token = "float" "(" (float-value
    / (DQUOTE float-value DQUOTE)) ")"
implicit-float-token = *DIGIT "." 1*DIGIT

int-token = explicit-int-token / implicit-int-token
explicit-int-token = "int" "(" (integer-value
    / (DQUOTE integer-value DQUOTE)
    / (DQUOTE integer-value *(SP integer-value) DQUOTE ","
    numeric-or-mode)
    / (numeric-or-mode "," DQUOTE 1*integer-value *(SP integer-value)
    DQUOTE))
    ")"
implicit-int-token = integer-value

datetime-token = explicit-datetime-token / implicit-datetime-token
explicit-datetime-token = "datetime" "(" (datetime-value
    / (DQUOTE datetime-value DQUOTE)) ")"
implicit-datetime-token = datetime-value

range-token = "range" "(" range-token-param *("," range-token-param)
    ")"
range-token-param = ("from" "=" from-condition)
    / ("to" "=" to-condition)
    / range-limit
range-limit = datetime-token / float-token / int-token
    / "min" / "max"
from-condition = unquoted-from-condition
    / (DQUOTE unquoted-from-condition DQUOTE)
unquoted-from-condition = "GE" / "GT"
to-condition = unquoted-to-condition
    / (DQUOTE unquoted-to-condition DQUOTE)
unquoted-to-condition = "LE" / "LT"

; Data types
string-value = quoted-string-value / unquoted-string-value

; <quoted-string-value> can contain any characters
; (including wide characters) that are not control
; characters, except for double quotation marks.quoted-string-value = DQUOTE 1*(quoted-escaped-character
    / %x20-21 / %x23-ffffffff) DQUOTE
quoted-escaped-character =
    quoted-escaped-backslash
    / quoted-escaped-newline
    / quoted-escaped-carriage-return
    / quoted-escaped-tab
    / quoted-escaped-backspace
    / quoted-escaped-form-feed
    / quoted-escaped-double-quote
    / quoted-escaped-single-quote

quoted-escaped-backslash = "\\"
quoted-escaped-newline = "\n"
quoted-escaped-carriage-return = "\r"
quoted-escaped-tab = "\t"
quoted-escaped-backspace = "\b"
quoted-escaped-form-feed = "\f"
quoted-escaped-double-quote = "\" DQUOTE
quoted-escaped-single-quote = "'"

; <unquoted-string-value> can contain any characters (including wide
; characters) that are not control characters, except for spaces,
; commas, double quotation marks, parentheses,colons, and equals
; signs.unquoted-string-value =
    1*(%x21 / %x23-27 / %x2a-2b / %x2d-39 / %x3b-3c / %x3e-ffffffff)
integer-value = ["-" / "+"] 1*DIGIT
unsigned-integer-value = 1*DIGIT
float-value = ["-" / "+"] (*DIGIT "." 1*DIGIT) / 1*DIGIT

datetime-value = year "-" month "-" day
    ["T" hour ":" minute ":" second ["Z"]]
year = 4*DIGIT            ; four-digit or longer year (0000-infinity)
month = ("0" DIGIT)       ; two-digit month (00-09)
    / ("1" %x30-32)       ; two-digit month (10-12)
day = (%x30-32 DIGIT)     ; two-digit day (00-29)
    / ("3" %x30-31)       ; two-digit day (30-31)
hour = (%x30-31 DIGIT)    ; two-digit hour (00-19)
    / ("2" %x30-33)       ; two-digit hour (20-23)
minute = (%x30-35 DIGIT)  ; two-digit minute (00-59)
second = (%x30-35 DIGIT)  ; two-digit second (00-59)

yesno-value = quoted-yesno-value / unquoted-yesno-value
quoted-yesno-value = DQUOTE unquoted-yesno-value DQUOTE
unquoted-yesno-value = "YES" / "NO"

onoff-value = quoted-onoff-value / unquoted-onoff-value
quoted-onoff-value = DQUOTE unquoted-onoff-value DQUOTE
unquoted-onoff-value = "ON" / "OFF"

; <mode-value> must be inside double quotation marks.mode-value = DQUOTE ("PHRASE" / "AND" / "OR" / "ANY" / "NEAR"
    / "ONEAR" / "SIMPLEALL" / "SIMPLEANY") DQUOTE

; General syntax elements
in-expression = ((internal-property-name / property-name) ":")
    / (DQUOTE (internal-property-name / property-name) DQUOTE ":")
numeric-or-mode = "mode" "=" DQUOTE "OR" DQUOTE
token-distance = unsigned-integer-value
internal-property-name = property-name "." property-name
property-name = 1*(ALPHA / DIGIT)
multiple-fql-params = fql-expression 1*("," fql-expression)
Cela vous a-t-il été utile ?
(1500 caractères restants)

Ajouts de la communauté

AJOUTER
© 2013 Microsoft. Tous droits réservés.