Recherche de contenu avec Optimizely Graph / Blogs / Perficient

Optimizely Graph vous permet de récupérer du contenu et de synchroniser les données d’autres produits Optimizely. Pour la recherche de contenu, cela vous permet de créer des outils de recherche personnalisés qui transforment les entrées de l’utilisateur en requête GraphQL, puis de traiter les résultats dans une page de résultats de recherche.
Pourquoi utiliser Graph pour la recherche de contenu ?
Les avantages d’un service de recherche basé sur Optimizely Graph incluent :
- Résultats de recherche plus rapides.
- Meilleure gestion des erreurs.
- Plus de flexibilité sur la logique de recherche.
- Capacité de recherche multi-applications et multiplateformes.
Explorons les étapes pour que cela fonctionne à l’aide du projet Alloy. Tout d’abord, obtenez les clés/secrets du graphique de contenu auprès d’Optimizely.
Mise en œuvre: Cela implique deux étapes.
#1 : Configuration côté serveur et requêtes
- Ajoutez les clés du graphique de contenu et le secret dans appSettings.json
- Installez le
Optimizely.ContentGraph.Cms
package, et notez que l’API Content Delivery doit également être installée comme condition préalable au fonctionnement du graphique.- Les packages requis sont surlignés en rouge. L’initialisation de l’API Content Delivery et du Graph dans
IServiceCollection
. Des options de configuration supplémentaires sont disponibles selon les besoins.
- Les packages requis sont surlignés en rouge. L’initialisation de l’API Content Delivery et du Graph dans
- Après avoir exécuté le code, vous devriez voir l’option Optimizely Graph dans le CMS.
- Exécutez la tâche d’indexation à partir de l’option Synchronisation du contenu. Une fois terminé, tous les types de contenu indexés seront visibles.
- L’écran ci-dessous affiche l’état de la tâche et vous pouvez explorer le contenu indexé en cliquant sur le lien Détails. Les types de contenu indexés disponibles pour les requêtes sont surlignés en vert.
- Avec cela, vous devriez pouvoir interroger le contenu dans le terrain de jeu GraphQL en sélectionnant n’importe quel type de contenu de page
#2. Configuration côté client et requêtes
Maintenant que l’interrogation côté serveur est prête, configurons le côté client pour qu’il interroge à partir du code de l’application.
- Installez les packages suivants :
StrawberryShake.Server
StrawberryShake.Transport.Http
.
- Nous devons également installer
StrawberryShake.Tools
sur la machine- outil dotnet installer StrawberryShake.Tools -g
- Ensuite, nous allons créer un exemple de requête GraphQL pour générer un proxy/schéma. Copiez la même requête de la configuration côté serveur dans un
.graphql
déposer. Créer unQueries
dossier et placez le fichier de requête à l’intérieur.
- Accédez au dossier du projet actuel dans le terminal et exécutez la commande suivante, en remplaçant le
OptimizelyGraphSingleKeyValue
avec la clé reçue d’Optimizely (comme indiqué dans l’étape appSettings) :- dotnet-graphql init https://cg.optimizely.com/content/v2?auth={OptimizelyGraphSingleKeyValue} -n AlloyGraphClient
- Cela générera trois fichiers pour le schéma GraphQL, comme indiqué ci-dessous.
- L’étape précédente crée également le client StrawberryShake dans la solution, qui sera utilisé pour les requêtes. Le nom du client correspondra à l’espace de noms fourni précédemment. Depuis que nous avons utilisé
-n AlloyGraphClient
le client généré seraAddAlloyGraphClient
- Configurez l’adresse de base pour utiliser la valeur Optimizely Single Key dans les paramètres du graphique.
- Ceci termine la configuration et nous devrions maintenant pouvoir utiliser ce client pour interroger le code. Le client génère une interface suivant un modèle de dénomination similaire ; ici, ce sera
IAlloyGraphClient
- Injectez cette interface dans le
StartPageController
et vérifier les résultats
- Injectez cette interface dans le
- Comme nous pouvons le voir, les données sont renvoyées en fonction de la requête. Ceci est maintenant prêt à être cartographié et affiché dans les vues.
- GraphQL prend en charge une gamme complète de fonctionnalités, notamment les requêtes et le filtrage. Il est facile de vérifier les requêtes dans le terrain de jeu et d’appliquer ces modifications au
.graphql
fichier de requête. Si vous apportez des ajouts ou des modifications à la requête, assurez-vous que le dernier schéma est téléchargé lorsque vous reconstruisez le code.
Source link