Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

L'utilisation de GQL avec l'API REST SharePoint Online recherche graphique Office de requête

Langage de requête graphique (GQL) est un langage de requête préliminaire conçu pour interroger le graphique Office via l'API REST recherche en ligne de SharePoint. À l'aide de GQL, vous pouvez interroger le graphique Office pour obtenir des éléments pour un acteur qui correspond à un filtre particulier.

Dernière modification : mardi 28 octobre 2014

S’applique à : Office 365 | Office 365 First Release program | SharePoint Online

Dans cet article
À propos de Office Graph
Le modèle de données Office Graph
Extensions de requête graphique dans l'API REST de recherche SharePoint Online
Types d'actions disponibles
Exécution de requêtes de graphique par rapport à SharePoint 2013
Ressources supplémentaires

Cet article décrit comment utiliser l'API REST de recherche SharePoint Online pour la Office Graphde la requête. Notez que les ajouts à l'API REST de recherche actuelles sont une solution préliminaire afin de permettre à la requête du Office Graph, principalement destinés à l'expérience Office plonger. N'hésitez pas à expérimenter d'interrogation de la Office Graph, mais n'utilisez pas ces fonctionnalités dans la production.

La Office Graph contient des informations sur les objets d'entreprise tels que les personnes et de documents, ainsi que les relations et les interactions entre ces objets. Les relations et les interactions sont représentées sous forme de contours.

Certaines arêtes représentent une interaction :

  • Modified — Carl modifié un document.

  • Viewed — Jarvis affiché une présentation.

Certaines arêtes sont calculées en fonction des interactions multiples :

  • WorkingWith — personnes avec qui vous interagissez souvent avec.

  • TrendingAround : les éléments qui sont les plus courants dans votre cercle de collègues.

Certaines arêtes sont les relations entre les objets d'entreprise :

  • OrgManager, OrgColleagueet ainsi de suite, arêtes de la structure organisationnelle.

Pour une liste des arêtes de Office Graph en cours et leurs descriptions, consultez types d'actions disponibles .

La figure suivante montre l'aspect de la recherche de la Office Graph, où les informations sont collectées par l'activité sur le Office 365 des services et traitées pour créer des arêtes. Actuellement, les informations contenues dans le Office Graph provenant de SharePoint Online, OneDrive Entreprise, Exchange Online, Microsoft Azure Active Directoryet Delve.

Pouvoirs essayez-le une vue simplifiée de l'aspect de la recherche de graphique Office et Delve, principal

Aspect de la recherche Office Graph et Delve, expérience principale apportée.

La relation entre un acteur et objet Edge

Chaque bord comporte un noeud source (l’acteur) et un noeud cible (l’objet)

Comme avec n'importe quel graphique, chaque arête dans le Office Graph a un nœud source et un nœud cible. Le nœud source est appelé la actor et du nœud cible est le object.

Edges ont les propriétés répertoriées dans le tableau suivant.

Propriétés de contour

Propriété

Type

Description

ActorId

Nombre entier

L'ID de l'acteur.

ObjectId

Nombre entier

L'ID de l'objet.

Action type

Nombre entier

Un ID qui identifie l'action ou la relation type le bord représente. Important : types d'actions sont répertoriés dans les types d'actions disponibles.

Time

Chaîne

Un horodatage du bord ; basé sur la norme ISO 8601. La sémantique de l'horodatage varie selon le type de l'arête. Consultez les types d'actions disponibles.

Weight

Nombre entier

Un nombre qui indique l'importance du bord. La sémantique du poids varie selon le type de l'arête. Consultez les types d'actions disponibles.

Blob

Objet BLOB

À usage interne uniquement.

BlobContent

Chaîne

À usage interne uniquement.

ObjectSource

Nombre entier

À usage interne uniquement.

Les nœuds dans le Office Graph ont les mêmes propriétés gérées tel que défini dans leschéma de recherchede SharePoint Online. Vous pouvez récupérer les propriétés de Retrievable à l'aide de la propriété de requête SelectProperties

Vous pouvez interroger la Office Graph via la SharePoint Online Vue d'ensemble de l'API REST SharePoint Search en plaçant deux nouvelles propriétés dans le sac de propriétés de requête : GraphQuery et GraphRankingModel. Le GraphQuery est écrit dans GQL.

Vous pouvez combiner des GraphQuery et GraphRankingModel avec les autres paramètres de la requête que vous êtes familiarisé avec recherche dans SharePoint Online, à l'exclusion des raffineurs et des modèles de requête.

En règle générale, lorsque vous interrogez la Office Graph, vous souhaitez rechercher des éléments qui sont liés à d'autres éléments et récupérer des informations sur ces éléments et leurs relations. Par exemple, vous souhaitez interroger le graphique pour « tout ce qui concerne Carl Steadman » ou « tous les éléments modifiés par Jarvis Ferro ».

Un appel de requête graphique typique via le reste

Dans une requête graphique, vous pouvez utiliser une partie contenu (Querytext) et une partie graphique (GraphQuery). La propriété GraphQuery est spécifiée dans le cadre de Propriétés.

Une requête graphique peut contenir une partie de contenu (Querytext) et une partie du graphique (GraphQuery). Vous pouvez utiliser ces pour effectuer une recherche sur le contenu d'un élément entier combinée et les personnes d'interactions ont eu avec cet élément particulier. La propriété Querytext est obligatoire. Si vous souhaitez faire correspondre tous les éléments sans filtrage n'importe quelle partie du contenu, vous pouvez utiliser l'astérisque (*).

GQL possède un opérateur principal : ACTOR. L'opérateur ACTOR recherche toutes les actions de l'acteur donné qui correspond à un filtre, puis retourne tous les objets de ces actions. Par exemple, pour renvoyer les documents modifiés par Carl Steadman (en supposant que la ActorId = 1234 pour Carl Steadman) vous pouvez fractionner cette information en :

  • Carl Steadman est le ACTOR.

  • Modifier est le action avec l'ID = 1003.

  • Document est le object, qui est renvoyée dans le résultat.

Ensuite, vous pouvez écrire la requête suivante.

ACTOR(1234, action:1003)

Voici la syntaxe de l'opérateur ACTOR .

ACTOR(<ActorId> [, filter])

Le ActorId est l'ID du nœud que vous souhaitez rechercher les actions pour. Le filter est un prédicat appliqué à tous les bords sortants de l'acteur. Le filter est construit à l'aide de la Action, Timeet Weight dans le tableau 1 en combinaison avec les opérateurs booléens : AND, NOTet OR. Le résultat de la requête est les objets de toutes les arêtes qui correspondent à la filter.

Vous pouvez combiner des opérateurs ACTOR en utilisant les opérateurs AND et OR . Par exemple, pour retourner tous les éléments modifiés par les deux Jarvis Ferro (ActorId = 1234) et Austin Ingalls (ActorId = 5678), vous écrivez ce qui suit.

AND(ACTOR(1234, action:1003), ACTOR(5678, action:1003))

Écrire ce qui suit pour retourner tous les éléments modifiés par Jarvis Ferro ou Austin Ingalls.

OR(ACTOR(1234, action:1003), ACTOR(5678, action:1003))

Lorsque vous écrivez des requêtes de graphique qui vous obligent à utiliser le ActorId de l'utilisateur authentifié, vous pouvez utiliser la macro ME comme un substitut équivalent. Par exemple, pour renvoyer des documents modifiés par l'utilisateur authentifié, écrire.

ACTOR(ME, action:1003)

Type d'action

Description

Visibilité

Identificateur

Épaisseur

Horodateur (Timestamp)

PersonalFeed

Personnel de l'acteur d'alimentation comme illustré sur leur mode d'accueil dans Delve.

Serveur

1021

Un numéro de séquence.

Lorsque l'élément a été ajouté à ce flux sur la vue page d'accueil de Delve.

Modified

Éléments de l'acteur a modifié au cours des trois derniers mois.

Publics

1003

Le nombre de modifications.

Dernière modification :

OrgColleague

Toute personne qui signale le même responsable comme l'acteur.

Publics

1015

Toujours 1.

-

OrgDirect

Rapports directs de l'acteur.

Publics

1014

Toujours 1.

-

OrgManager

La personne à laquelle l'acteur rapports.

Publics

1013

Toujours 1.

-

OrgSkipLevelManager

Gestionnaire de l'acteur au niveau de l'ignorer.

Publics

1016

Toujours 1.

-

WorkingWith

Personnes auxquelles l'acteur communique ou utilise fréquemment.

Serveur

1019

Un score de pertinence.

-

TrendingAround

Éléments les plus courants avec des personnes l'acteur fonctionne ou communique régulièrement avec.

Publics

1020

Un score de pertinence.

-

Viewed

Éléments affichés par l'acteur au cours des trois derniers mois.

Serveur

1001

Le nombre de vues.

Dernière consultation.

WorkingWithPublic

Une version publique du bord WorkingWith .

Publics

1033

Un numéro de séquence.

-

Pour interroger le graphique Office, vous devez ajouter le GraphQuery au sac de propriétés de la classe KeywordQuery . La valeur de cette propriété doit être la chaîne de requête graphique au format GQL. Pour rechercher ID une personne (ActorId), tels que Carl Steadman (username:carls), vous pouvez écrire la requête suivante de reste.

https://<tenant_address>/_api/search/query?Querytext='Username:carls'&SourceId='b09a7990-05ea-4af9-81ef-edfab16c4e31'&SelectProperties='UserName,DocId'
RemarqueRemarque

SourceId fait référence à la source de résultats à utiliser pour exécuter une requête particulière ; b09a7990-05ea-4af9-81ef-edfab16c4e31 est l'ID pour la source de résultats de recherche de personnes.

Le résultat contient les ID de la personne (DocId = 21865248), comme indiqué.

<d:element m:type="SP.KeyValue">
    <d:Key>DocId</d:Key>
    <d:Value>21865248</d:Value>
    <d:ValueType>Edm.Int64</d:ValueType>
</d:element>

Exemple

Les exemples suivants vous montrent comment écrire le seul acteur et plusieurs requêtes d'acteur pour interroger la Office Graph. Ces exemples utilisent Carl l'acteur avec ActorId: 2962.

Les résultats renvoyés par ces requêtes peuvent contenir un maximum de dix éléments car il s'agit du nombre de résultats par défaut. Vous pouvez augmenter le nombre de résultats à l'aide de la propriété RowLimit() , comme illustré dans cet exemple.

Requêtes seul acteur

  • Tout d'abord les dix éléments liés à vous.

    Syntax: ACTOR(ME)

    https://<tenant_address>/_api/search/query?Querytext='*'&Properties='GraphQuery:ACTOR(ME)'
    
  • Tout d'abord les dix éléments liés à Carl.

    Syntax: ACTOR(2962)

    https://<tenant_address>/_api/search/query?Querytext='*'&Properties='GraphQuery:ACTOR(2962)'
    
  • Votre responsable.

    Syntax: ACTOR(ME, action:1013)

    https://<tenant_address>/_api/search/query?Querytext='*'&Properties='GraphQuery:ACTOR(ME\, action\:1013)'
    
  • Tout d'abord dix éléments que vous avez récemment modifiées ou affichées.

    Syntax: ACTOR(ME, OR(action:1001,action:1003))

    https://<tenant_address>/_api/search/query?Querytext='*'&Properties='GraphQuery:ACTOR(ME\, OR(action\:1001\,action\:1003))'
    
  • Tout d'abord dix éléments que vous avez modifiés sur le 15 août 2014.

    Syntax: ACTOR(ME, AND(action:1003, time:datetime(2014-08-15)))

    https://<tenant_address>/_api/search/query?Querytext='*'&Properties='GraphQuery:ACTOR(ME\, AND(action\:1003\, time\:datetime(2014-08-15)))'
    
  • Tout d'abord dix éléments que vous avez modifié le 26 juin 2014 ou une version ultérieure.

    Syntax: ACTOR(ME, AND(action:1003, time:range(datetime(2014-06-26),max)))

    https://<tenant_address>/_api/search/query?Querytext='*'&Properties='GraphQuery:ACTOR(ME\, AND(action\:1003\, time\:range(datetime(2014-06-26)\,max)))'
    

Plusieurs requêtes d'acteur

  • Tout d'abord les dix éléments associés et Carl.

    Syntax: AND(ACTOR(ME), ACTOR(2962))

    https://<tenant_address>/_api/search/query?Querytext='*'&Properties='GraphQuery:AND(ACTOR(ME)\, ACTOR(2962))'
    
  • Tout d'abord les dix éléments associés à vous ou à Carl.

    Syntax: OR(ACTOR(ME), ACTOR(2962))

    https://<tenant_address>/_api/search/query?Querytext='*'&Properties='GraphQuery:OR(ACTOR(ME)\, ACTOR(2962))'
    
  • Tout d'abord dix éléments que vous avez récemment affichées, et Carl a récemment modifié.

    Syntax: AND(ACTOR(ME, action:1001), ACTOR(2962, action:1003))

    https://<tenant_address>/_api/search/query?Querytext='*'&Properties='GraphQuery:AND(ACTOR(ME\, action\:1001)\, ACTOR(2962\, action\:1003))'
    

Comprendre le format de résultat de requête graphique

Le résultat de requêtes graphique est similaire au résultat pour les requêtes de recherche, avec une colonne supplémentaire, Edges, dans le cadre de la RelevantResult ResultTable renvoyés par la recherche SharePoint 2013 API de requête. Le format de Edges est un tableau de bords sérialisé en JSON.

Par exemple, la requête suivante demande la liste des personnes un acteur particulier (ActorId: 21894957) fonctionne avec (ActionId: 1033) :

https://<tenant_address>/_api/search/query?Querytext='*'&Properties='Graphquery:ACTOR(21894957\,action\:1033)'&SelectProperties='Docid,Title'

La sortie est la structure XML suivante, qui contient Edges , ainsi que des autres éléments. Dans cet exemple, un seul élément de Edges est retourné.

<d:element m:type="SP.KeyValue">
    <d:Key>Edges</d:Key>
    <d:Value>[{"ActorId":21894957,"ObjectId":21900499,
        "Properties":{"Action":1033,"Blob":[],
        "ObjectSource":1,"Time":"2013-12-02T13:56:25.5979646Z",
        "Weight":61}}]
    </d:Value>
    <d:ValueType>Edm.String</d:ValueType>
</d:element>

Contrôle d'accès de requête graphique

Les requêtes de graphique utilisent les mêmes mécanismes de contrôle d'accès que les requêtes de recherche. Une requête graphique ne renvoie que les éléments que l'utilisateur a accès.

En outre, le Office Graph fournit un mécanisme de contrôle d'accès pour tous ses bords. Chaque type d'action d'une arête dans le graphique peut être privée ou publique. Les bords publics sont visibles à tous les utilisateurs de l'organisation. Privé les bords sont uniquement visibles à l'acteur. Ils sont ignorés lorsqu'un autre utilisateur effectue une requête graphique. Par exemple, Carl Steadman peut interroger la Office Graph pour les articles qu'il a consulté. Si un autre utilisateur exécute cette requête avec ActorId de Carl Steadman, il ou elle obtient un résultat vide. Le tableau 2 répertorie les types d'actions sont publics et privés.

Exemples de requêtes avancées

Vous pouvez écrire des requêtes de graphique de différentes façons d'accomplir des tâches différentes. Les exemples suivants sont destinés à fournir un guide simple pour comment vous pouvez écrire ces requêtes avancées.

Associer la propriété GraphQuery avec d'autres propriétés de la requête

Example 1: combinez GraphQuery avec SelectProperties.

Tout d'abord dix éléments associés à vous ou à Ben, inclure les propriétés DocId et Edges dans les résultats.

https://<tenant_address>/_api/search/query?Querytext='*'&Properties='GraphQuery:OR(ACTOR(ME)\, ACTOR(2962))'&SelectProperties='DocId,Edges'

RemarqueRemarque

Vous recevrez plus de propriétés dans la sortie de DocId et de Edges; par exemple, RankId et PartitionId. C'est parce que ce sont les propriétés par défaut qui sont retournées par le service de recherche.

Example 2: combinez GraphQuery avec RowLimit().

100 premiers éléments associés à vous ou Ben.

https://<tenant_address>/_api/search/query?Querytext='*'&Properties='GraphQuery:OR(ACTOR(ME)\, ACTOR(2962))'&RowLimit=100

La propriété GraphRankingModel permet de trier les résultats

Vous pouvez trier le résultat retourné pour les requêtes de graphique de deux façons : par Timestamp du bord ou Weight du bord.

  • Pour effectuer un tri en fonction de l'horodatage du bord, affectez à la propriété GraphRankingModel égale à {"features"\:[{"function"\:"EdgeTime"}]}.

  • Pour effectuer un tri en fonction du poids du bord, affectez à la propriété GraphRankingModel égale à {"features"\:[{"function"\:"EdgeWeight"}]}.

Dans les deux cas, vous devez également définir la propriété RankingModelId à '0c77ded8-c3ef-466d-929d-905670ea1d72'. Si un élément dans le résultat est l'objet de plus d'un bord correspondant à la requête du graphique, le Timestamp ou le Weight le plus élevé sera utilisé.

Example 1: trier les éléments que vous avez récemment modifié par l'heure de leur dernière modification.

Syntax: GraphQuery:ACTOR(ME, action:1003) GraphRankingModel:{"features"\:[{"function"\:"EdgeTime"}]} RankingModelId='0c77ded8-c3ef-466d-929d-905670ea1d72'

https://<tenant_address>/_api/search/query?Querytext='*'&Properties='GraphQuery:ACTOR(ME\, action\:1003),GraphRankingModel:{"features"\:[{"function"\:"EdgeTime"}]}'&RankingModelId='0c77ded8-c3ef-466d-929d-905670ea1d72'

Example 2: trier les personnes que vous manipulez (WorkingWith) par leur proximité pour vous.

Syntax: GraphQuery:ACTOR(ME, action:1019) GraphRankingModel:{"features"\:[{"function"\:"EdgeWeight"}]} RankingModelId='0c77ded8-c3ef-466d-929d-905670ea1d72'

https://<tenant_address>/_api/search/query?Querytext='*'&Properties='GraphQuery:ACTOR(ME\, action\:1019),GraphRankingModel:{"features"\:[{"function"\:"EdgeWeight"}]}'&RankingModelId='0c77ded8-c3ef-466d-929d-905670ea1d72'

Combiner la propriété GraphQuery avec les requêtes de contenu ou des requêtes de texte intégral

Example: combinez GraphQuery avec Querytext= 'Titre : design » à la requête de tous les éléments que vous avez affiché récemment avec « conception » dans leur titre.

Syntax: GraphQuery:ACTOR(ME, action:1001)Querytext = 'Titre : design'

https://<tenant_address>/_api/search/query?Querytext='Title:design'&Properties='GraphQuery:ACTOR(ME)\, action\:1001))

Pour modifier la requête, vous pouvez utiliser n'importe quelle requête dans Querytext.

Afficher: