Quelle syntaxe utiliser pour le moteur de recherche SharePoint (KQL)
Comment créer des requêtes par mot clé dans SharePoint 2013/2016/2019/online : KQL (Keyword Query Language)
1. Éléments d’une requête KQL
Une requête KQL se compose des éléments suivants :
– Mots clés de texte libre (mots ou expression)
– Restrictions de propriété
Vous pouvez combiner des éléments de requête KQL avec un ou plusieurs des opérateurs disponibles.
Si la requête KQL est vide ou contient uniquement des opérateurs, elle n’est pas valide. Les requêtes KQL ne respectent pas la casse, mais les opérateurs si (majuscules).
Remarque :
La limite de longueur d’une requête KQL varie en fonction de la façon dont vous la créez. Si vous créez la requête KQL à l’aide de la recherche frontale SharePoint par défaut, la limite de longueur est de 2 048 caractères. Cependant, les requêtes KQL que vous créez par programme en utilisant le modèle objet de requête ont une limite de longueur par défaut de 4 096 caractères. Vous pouvez augmenter cette limite à 20 480 caractères à l’aide de la propriété MaxKeywordQueryTextLength ou DiscoveryMaxKeywordQueryTextLength (pour eDiscovery).
2. Création de requêtes de texte libre à l’aide de KQL
Lorsque vous créez votre requête KQL à l’aide d’expressions de texte libre, Recherche dans SharePoint 2013 correspond aux résultats des termes que vous avez choisi pour la requête en fonction des termes stockés dans l’index de texte intégral. Cela comprend les valeurs des propriétés gérées, où FullTextQueriable est définie sur true.
Les requêtes KQL de texte libre ne respectent pas la casse, mais les opérateurs doivent être en majuscules. Vous pouvez créer des requêtes KQL en utilisant les éléments suivants comme expressions de texte libre :
– Un word (inclut un ou plusieurs caractères sans espace ni ponctuation)
– Une phrase (inclut deux ou plusieurs mots, séparés par des espaces ; les mots doivent être placés entre guillemets)
Utilisation des mots dans un requête KQL de texte libre
Lorsque vous utilisez des mots dans une requête KQL de texte libre, Recherche dans SharePoint 2013 renvoie les résultats en fonction des correspondances exactes de vos mots avec les termes stockés dans l’index de texte intégral. Vous ne pouvez utiliser qu’une partie d’un mot, depuis le début du mot, à l’aide de l’opérateur générique (*) pour permettre la correspondance de préfixe. Dans la correspondance de préfixe, Recherche dans SharePoint 2013 renvoie les résultats des termes qui contiennent le mot suivi de zéro ou d’autres caractères.
Par exemple, les requêtes KQL suivantes renvoient les éléments de contenu qui comprennent les termes « federated » et « search » :
federated search
federat* search
search fed*
Les requêtes KQL ne prennent pas en charge le suffixe correspondant.
Utilisation d’expressions dans la requête KQL en texte libre
Lorsque vous utilisez des expressions dans une requête KQL de texte libre, Recherche dans SharePoint 2013 renvoie uniquement les éléments dans lesquels les mots de votre expression sont situés côte à côte. Pour spécifier une expression dans une requête KQL, vous devez utiliser des guillemets doubles.
Les requêtes KQL ne prennent pas en charge le suffixe correspondant, de sorte que vous ne pouvez pas placer l’opérateur générique avant une expression dans les requêtes de texte libre. Cependant, vous pouvez l’utiliser après une expression.
3. Requêtes de restriction de propriété dans KQL
KQL permet de créer des requêtes qui utilisent des restrictions de propriété pour limiter le champ de la requête afin d’obtenir uniquement des résultats basés sur une condition spécifiée.
Spécifications de restrictions de propriété
Une restriction de propriété de base comprend les éléments suivants :
<Property Name><Property Operator><Property Value>
Le tableau 1 répertorie des exemples de syntaxe de restriction de propriété valide dans les requêtes KQL.
Tableau 1. Syntaxe de restriction de propriété valide
Syntaxe | Renvoie |
---|---|
author: »John Smith » | Renvoie les éléments contenus créés par John Smith. |
filetype:docx | Renvoie les documents Microsoft Word. |
filename:budget.xlsx | Renvoie les éléments de contenu avec le nom de fichier budget.xlsx. |
La restriction de propriété ne doit pas comporter d’espace blanc entre le nom, l’opérateur et la valeur de la propriété. Dans le cas contraire, la restriction de propriété est considérée comme une requête de texte libre. La longueur d’une restriction de propriété est limitée à 2 048 caractères.
Dans les exemples suivants, l’espace blanc entraîne le renvoi des éléments de contenu incluant les termes « author » et « John Smith », au lieu des éléments de contenu publiés par John Smith :
author: « John Smith »
author : »John Smith »
author : « John Smith »
En d’autres termes, les restrictions de propriété précédentes sont équivalentes à : author « John Smith »
Spécification de noms de propriété pour les restrictions de propriété
Vous devez spécifier un nom valide de propriété gérée pour la restriction de propriété. Par défaut, Recherche dans SharePoint 2013 inclut plusieurs propriétés gérées pour les documents.
Pour spécifier la restriction de propriété d’une valeur de propriété analysée, vous devez d’abord mapper la propriété analysée à une propriété gérée. Consultez la rubrique Propriétés gérées et analysées dans Planifier les conditions d’utilisation de la recherche pour l’utilisateur final (Office SharePoint Server).
La propriété gérée doit être Queryable de sorte que vous puissiez rechercher cette propriété gérée dans un document. En outre, la propriété gérée peut être Retrievable pour la propriété gérée à récupérer. Toutefois, la propriété gérée ne doit pas être Retrievable pour effectuer des recherches de propriétés.
Opérateurs de propriété pris en charge dans les restrictions de propriété
Recherche dans SharePoint prend en charge plusieurs opérateurs de propriété pour les restrictions de propriété, comme indiqué dans le tableau 2.
Tableau 2. Opérateurs de propriété valides pour les restrictions de propriété
Opérateur | Description | Type de propriété gérée pris en charge |
---|---|---|
: | Renvoie les résultats lorsque la valeur spécifiée dans la restriction de propriété est égale à la valeur de propriété stockée dans la base de données de banque de propriétés, ou correspond aux termes individuels dans la valeur de propriété stockée dans l’index de texte intégral. | |
= | Renvoie les résultats de recherche lorsque la valeur de propriété est égale à la valeur spécifiée dans la restriction de propriété. | |
< | Renvoie les résultats lorsque la valeur de propriété est inférieure à la valeur spécifiée dans la restriction de propriété. | |
> | Renvoie les résultats de recherche lorsque la valeur de propriété est supérieure à la valeur spécifiée dans la restriction de propriété. | |
<= | Renvoie les résultats de recherche lorsque la valeur de propriété est inférieure ou égale à la valeur spécifiée dans la restriction de propriété. | |
>= | Renvoie les résultats de recherche lorsque la valeur de propriété est supérieure ou égale à la valeur spécifiée dans la restriction de propriété. | |
<> | Renvoie les résultats de recherche lorsque la valeur de propriété n’est pas égale à la valeur spécifiée dans la restriction de propriété. | |
.. | Renvoie les résultats de recherche lorsque la valeur de propriété est comprise dans la plage spécifiée dans la restriction de propriété.Par exemple, la plage A..B représente un ensemble de valeurs comprises entre A et B, où A et B sont inclus. Pour les plages de dates, A indique le début de la journée et B, la fin. |
Spécification des valeurs de propriété
Vous devez spécifier une valeur de propriété étant un type de données valide pour le type de la propriété gérée. Le tableau 3 répertorie ces mappages de types.
Tableau 3. Mappages de types de données valides pour les types de propriété gérée
Type géré | Type de données |
---|---|
Text | String |
Integer | Int64 |
Double | System.Double |
Decimal | Decimal |
DateTime() | DateTime |
YesNo | Boolean |
Valeurs de propriété de texte
Pour les valeurs de propriété de texte, le comportement de correspondance dépend du stockage de la propriété dans l’index de texte intégral ou dans l’index de recherche.
Valeurs de propriété dans l’index de texte intégral
Les valeurs de propriété sont stockées dans l’index de texte intégral lorsque la propriété FullTextQueriable est définie sur true pour une propriété gérée. Vous pouvez configurer cette fonction uniquement pour les propriétés de chaîne. Les valeurs de propriété spécifiées dans la requête sont mises en correspondance en fonction des termes individuels stockés dans l’index de texte intégral. Utilisez la propriété NoWordBreaker pour spécifier si les valeurs doivent correspondre à la valeur totale de la propriété.
Par exemple, si vous recherchez un élément de contenu écrit par Paul Shakespear, la requête KQL suivante renvoie les résultats correspondants :
author:Shakespear
author:Paul
La correspondance de préfixe est également prise en charge. Vous pouvez utiliser l’opérateur générique (*), mais cela n’est pas obligatoire lorsque vous spécifiez des mots individuels. Pour revenir à l’exemple précédent, la requête KQL suivante renvoie des éléments de contenu publiés par Paul Shakespear comme correspondances :
author:Shakesp*
Lorsque vous spécifiez une expression pour la valeur de la propriété, les résultats correspondants doivent contenir l’expression spécifiée dans la valeur de propriété stockée dans l’index de texte intégral. L’exemple de requête suivant renvoie les éléments de contenu avec le texte « Advanced Search » dans le titre, comme « Advanced Search XML », « Learning About the Advanced Search Web Part » etc. :
title: »Advanced Search »
La correspondance de préfixe est également prise en charge avec des expressions spécifiées dans les valeurs de propriété. Toutefois, vous devez utiliser l’opérateur générique (*) dans la requête ; celui-ci est pris en charge uniquement lorsqu’il est situé à la fin de l’expression, comme suit :
title: »Advanced Sear* »
Valeurs numériques pour les propriétés
Pour les valeurs de propriété numériques qui incluent les types gérés Integer, Double et Decimal, la restriction de propriété correspond à la valeur totale de la propriété.
Valeurs de date ou d’heure des propriétés
KQL fournit le type de données datetime de date et d’heure. Les formats suivants de date/heure compatibles avec ISO 8601 sont pris en charge dans les requêtes :
- YYYY-MM-DD
- YYYY-MM-DDThh:mm:ss
- YYYY-MM-DDThh:mm:ssZ
- YYYY-MM-DDThh:mm:ssfrZ
Dans ces formats datetime :
- YYYY spécifie une année à quatre chiffres. Remarque : Seules les années à quatre chiffres sont prises en charge
- MM spécifie un mois à deux chiffres. Par exemple, 01 = janvier.
- DD spécifie un jour du mois à deux chiffres (01 à 31).
- T spécifie la lettre « T ».
- hh spécifie une heure à deux chiffres (00 à 23) ; l’indication AM/PM n’est pas autorisée.
- mm spécifie une minute à deux chiffres (00 à 59).
- ss spécifie une seconde à deux chiffres (00 à 59).
- fr spécifie une fraction de secondes facultative, ss, de 1 à 7 chiffres qui suit le point . après les secondes. Par exemple : 2012-09-27T11:57:34.1234567.
Toutes les valeurs de date/d’heure doivent être spécifiées suivant l’UTC (temps universel coordonné), aussi connu comme heure de Greenwich (GMT). L’identificateur de fuseau horaire UTC (caractère « Z » de fin) est facultatif.
Intervalles de dates pertinents pris en charge par KQL
KQL vous permet de créer des requêtes de recherche qui prennent en charge la requête de plage de « jour » contenant des mots clés réservés comme indiqué dans le tableau 4. Utilisez des guillemets doubles ( » « ) pour les intervalles de date et introduisez un espace entre leurs noms.
Nom de l’intervalle de dates | Description |
---|---|
Aujourd’hui | Représente le temps écoulé entre le début et la fin du jour en cours. |
Hier | Représente le temps écoulé entre le début du jour et la fin du jour qui précède celui en cours. |
Cette semaine | Représente le temps écoulé entre le début et la fin de la semaine en cours. La culture dans laquelle le texte de la requête a été formulé est prise en compte pour déterminer le premier jour de la semaine. |
Ce mois-ci | Représente le temps écoulé entre le début et la fin du mois en cours. |
Le mois dernier | Représente l’ensemble du mois qui précède le mois en cours. |
Cette année | Représente le temps écoulé entre le début et la fin de l’année en cours. |
L’année dernière | Représente l’ensemble de l’année qui précède l’année en cours. |
Utilisation de plusieurs restrictions de propriété au sein d’une requête KQL
Recherche dans SharePoint 2013 prend en charge l’utilisation de plusieurs restrictions de propriété au sein de la même requête KQL. Vous pouvez utiliser la même propriété pour plusieurs restrictions de propriété ou une propriété différente pour chaque restriction de propriété.
Lorsque vous utilisez plusieurs instances de la même restriction de propriété, les correspondances sont basées sur l’union des restrictions de propriété dans la requête KQL. Les correspondances incluent dans ce cas des éléments de contenu publiés par John Smith ou Jane Smith, comme suit :
author: »John Smith » author: »Jane Smith »
Cette fonctionnalité est identique à l’utilisation de l’opérateur booléen OR, comme suit :
author: »John Smith » OR author: »Jane Smith »
Lorsque vous utilisez différentes restrictions de propriété, les correspondances sont basées sur une intersection des restrictions de propriété dans la requête KQL, comme suit :
author: »John Smith » filetype:docx
Les correspondances incluent dans ce cas les documents Microsoft Word rédigés par John Smith. L’utilisation est la même qu’avec l’opérateur booléen AND, comme suit :
author: »John Smith » AND filetype:docx
4. Opérateurs KQL pour les requêtes complexes
La syntaxe KQL inclut plusieurs opérateurs que vous pouvez utiliser pour construire des requêtes complexes.
Opérateurs booléens
Utilisez des opérateurs booléens pour élargir ou affiner votre recherche. Vous pouvez utiliser les opérateurs booléens avec des expressions de texte libre et des restrictions de propriété dans les requêtes KQL. Le tableau 5 répertorie les opérateurs booléens pris en charge.
Laisser un commentaire