Intégration d’Optimizely CMS à Azure AI Search / Blogs / Ferfient

Vous souhaitez élever les capacités de recherche du site PaaS CMS Optimizely? La recherche Azure AI pourrait être juste l’outil dont vous avez besoin! Dans ce blog, je vais discuter de la façon de connecter votre CMS à la plate-forme de recherche avancée de Microsoft, de Microsoft, pour créer des expériences de recherche intelligentes rapides qui dépassent les recherches de mots clés régulières.
Qu’est-ce que la recherche Azure AI?
La recherche Azure AI est le service de recherche basé sur le cloud de Microsoft alimenté par l’IA. Il vous permet d’indexer, de rechercher et d’analyser de nombreuses quantités de contenu en utilisant des recherches en texte intégral, une navigation à facettes et des fonctionnalités d’apprentissage automatique (telles que la compréhension du langage et la recherche sémantique).
Pourquoi c’est génial
- Expériences de recherche super rapides et évolutives.
- IA intégrée pour une pertinence améliorée.
- Intégration en douceur avec d’autres services Azure.
En bref: il s’agit d’une recherche intelligente adaptée aux utilisateurs.
Avantages de l’intégration à la CMS optimiste
Avant d’entrer dans les avantages, prenons un moment pour considérer comment la recherche Azure AI se compare aux fonctionnalités de recherche natives d’Optimizely. Optimizely Search (qui repose sur Lucene ou Find / Search & Navigation) fonctionne bien pour les recherches de mots clés et les filtres de base simples, et il est étroitement lié au CMS. Cependant, il n’offre pas les fonctionnalités de l’IA avancées, l’évolutivité ou la flexibilité qu’Azure offre dès le départ. Azure AI Search enrichit l’expérience de recherche avec des fonctionnalités telles que la recherche sémantique, les améliorations cognitives et l’indexation des données externes, ce qui le rend parfait pour les sites de niveau d’entreprise avec des exigences de recherche complexes.
Voici pourquoi la fusion de ces deux solutions est bénéfique:
- Amélioration des expériences de recherche avec une pertinence basée sur l’IA.
- Évolutif et fiable – permettez à Azure de gérer le levage de lourds.
- Indexation de contenu personnalisée à partir de votre CMS à l’aide d’API ou de travaux.
- Des options avancées telles que le filtrage, les facettes, la complète automatique, etc.
Commencez avec la recherche Azure AI
Pour configurer la recherche Azure AI, suivez simplement ces étapes:
- Connectez-vous au portail Azure et recherchez la recherche AI.
- Cliquez sur «Créer» pour configurer ce qui suit:
- Nom
- Groupe de ressources
- Tier-prix (y compris un niveau gratuit!)
- Région
Une fois créé, assurez-vous de noter le nom du service de recherche et la clé de l’API d’administration – vous en aurez besoin pour envoyer et récupérer
Travail planifié personnalisé pour synchroniser le contenu mis à jour avec une recherche Azure AI à l’aide de ServiceAPI
En utilisant l’Optimizely ServiceAPI, nous pouvons efficacement obtenir du contenu mis à jour et le synchroniser avec la recherche Azure AI. Ce processus évite la nécessité de réindexer l’ensemble du site, ce qui contribue à augmenter les performances.
[ScheduledPlugIn(DisplayName = "Sync Updated Content to Azure Search")] public class AzureSearchJob : ScheduledJobBase { private readonly HttpClient _httpClient; private readonly string _serviceApiBaseUrl = "https://yourwebsite.com/episerverapi/content/"; public AzureSearchJob() { _httpClient = new HttpClient(); IsStoppable = true; } public override string Execute() { // Step 1: Get content updated in the last 24 hours var yesterday = DateTime.UtcNow.AddDays(-1).ToString("o"); var contentApiUrl = $"{_serviceApiBaseUrl}?updatedAfter={Uri.EscapeDataString(yesterday)}"; var response = _httpClient.GetAsync(contentApiUrl).Result; if (!response.IsSuccessStatusCode) return "Failed to fetch updated content from ServiceAPI."; var contentJson = response.Content.ReadAsStringAsync().Result; var documents = JsonSerializer.Deserialize<JsonElement>(contentJson).EnumerateArray() .Select(content => new Dictionary<string, object> { ["id"] = content.GetProperty("ContentGuid").ToString(), ["name"] = content.GetProperty("Name").GetString(), ["content"] = content.GetProperty("ContentLink").GetRawText(), ["type"] = content.GetProperty("ContentTypeName").GetString() }).ToList(); // Step 2: Push to Azure AI Search var json = JsonSerializer.Serialize(new { value = documents }); var request = new HttpRequestMessage(HttpMethod.Post, "https://servicename.search.windows.net/indexes/<index-name>/docs/index?api-version=2021-04-30-Preview") { Content = new StringContent(json, Encoding.UTF8, "application/json") }; request.Headers.Add("api-key", "<your-admin-key>"); var result = _httpClient.SendAsync(request).Result; return result.IsSuccessStatusCode ? "Success" : "Failed to index in Azure Search."; } }
Vous pouvez filtrer et transformer la réponse ServiceAPI davantage pour correspondre à votre schéma d’index.
Type de page personnalisé et contrôleur / vue pour interroger la recherche Azure
Créez un nouveau type de page pour servir de page de résultats de recherche.
Type de page de recherche
[ContentType(DisplayName = "Search Results Page", GUID = "3C918F3E-D82B-480B-9FD8-A3A1DA3ECB1B", Description = "Search using Azure Search")] public class AzureSearchPage : PageData { [Display(Name = "Search Placeholder")] public virtual string PlaceholderText { get; set; } }
Contrôleur de page
public class AzureSearchPageController : PageController<AzureSearchPage> { public ActionResult Index(AzureSearchPage currentPage, string q = "") { var results = new List<string>(); if (!string.IsNullOrEmpty(q)) { var url = $"https://<search-service>.search.windows.net/indexes/<index-name>/docs?api-version=2021-04-30-Preview&search={q}"; using var client = new HttpClient(); client.DefaultRequestHeaders.Add("api-key", "<your-query-key>"); var response = client.GetStringAsync(url).Result; var doc = JsonDocument.Parse(response); results = doc.RootElement.GetProperty("value") .EnumerateArray() .Select(x => x.GetProperty("name").GetString()) .ToList(); } ViewBag.Results = results; ViewBag.Query = q; return View(currentPage); } }
Affichage de la page de recherche
@model AzureSearchPage @{ Layout = "~/Views/Shared/_Layout.cshtml"; } <h1>Search Results</h1> <form method="get"> <input type="text" name="q" value="@ViewBag.Query" placeholder="@Model.PlaceholderText" /> <button type="submit">Search</button> </form> <ul> @foreach (var result in ViewBag.Results as List<string>) { <li>@result</li> } </ul>
Optimizely CMS / Azure AI Recherche des cas d’utilisation avancée
- Recherche sémantique: Soit Azure comprendre l’intention, pas seulement les mots clés.
- Complète automatique et suggestions: Accrochez-vous aux fonctionnalités de recherche en tant que type.
- Navigation à facettes: Créez des filtres par catégorie, balises, etc.
- Enrichissement de l’IA: Utilisez les compétences d’Azure pour extraire les métadonnées et analysez les images, ou les PDF OCR.
- Recherche multilingue: Azure prend en charge la recherche sur plusieurs langues hors de la boîte.
Résumé
L’intégration de la recherche Azure AI avec Optimizely CMS peut vraiment prendre votre recherche de site de base à brillant. Avec un peu de configuration et un code propre, vous autonomisez les utilisateurs avec une découverte de contenu rapide, intelligente et évolutive.
Ce blog est également publié ici
Source link