Close Menu
    DevStackTipsDevStackTips
    • Home
    • News & Updates
      1. Tech & Work
      2. View All

      The Psychology Of Color In UX Design And Digital Products

      August 15, 2025

      This week in AI dev tools: Claude Sonnet 4’s larger context window, ChatGPT updates, and more (August 15, 2025)

      August 15, 2025

      Sentry launches MCP monitoring tool

      August 14, 2025

      10 Benefits of Hiring a React.js Development Company (2025–2026 Edition)

      August 13, 2025

      I flew Insta360’s new ‘Antigravity’ drone around Los Angeles, and it was impossible to miss a shot

      August 15, 2025

      The $100 open-ear headphones that made me forget about my Shokz

      August 15, 2025

      5 quick and simple ways to greatly improve the quality of your headphones

      August 15, 2025

      Installing a UPS battery backup saved my work PC – here’s the full story

      August 15, 2025
    • Development
      1. Algorithms & Data Structures
      2. Artificial Intelligence
      3. Back-End Development
      4. Databases
      5. Front-End Development
      6. Libraries & Frameworks
      7. Machine Learning
      8. Security
      9. Software Engineering
      10. Tools & IDEs
      11. Web Design
      12. Web Development
      13. Web Security
      14. Programming Languages
        • PHP
        • JavaScript
      Featured

      Maintaining Data Consistency with Laravel Database Transactions

      August 16, 2025
      Recent

      Maintaining Data Consistency with Laravel Database Transactions

      August 16, 2025

      Building a Multi-Step Form With Laravel, Livewire, and MongoDB

      August 16, 2025

      Inertia Releases a New Form Component

      August 16, 2025
    • Operating Systems
      1. Windows
      2. Linux
      3. macOS
      Featured

      Google’s Gemini AI had a full-on meltdown while coding — calling itself a fool, a disgrace, and begging for freedom from its own loop

      August 15, 2025
      Recent

      Google’s Gemini AI had a full-on meltdown while coding — calling itself a fool, a disgrace, and begging for freedom from its own loop

      August 15, 2025

      Take-Two hints at $100 price tag for Grand Theft Auto VI — will it deliver on value?

      August 15, 2025

      ChatGPT Go offers GPT-5, image creation, and longer memory — all for $5 (if you’re lucky enough to live where it’s available)

      August 15, 2025
    • Learning Resources
      • Books
      • Cheatsheets
      • Tutorials & Guides
    Home»Development»Integrating Optimizely CMS with Azure AI Search – A Game-Changer for Site Search

    Integrating Optimizely CMS with Azure AI Search – A Game-Changer for Site Search

    April 9, 2025
    Integrating Optimizely CMS with Azure AI Search – A Game-Changer for Site Search

    Want to elevate your Optimizely PaaS CMS site’s search capabilities? Azure AI Search could be just the tool you need! In this blog, I’ll discuss how to connect your CMS with Microsoft’s advanced AI-driven search platform to create fast, smart search experiences that surpass regular keyword searches. Optimizely Azure Ai Search

    What is Azure AI Search?

    Azure AI Search is Microsoft’s cloud-based search service powered by AI. It enables you to index, search, and analyze extensive amounts of content utilizing full-text searches, faceted navigation, and machine-learning features (such as language comprehension and semantic search).

    Why it’s great

    • Super fast and scalable search experiences.
    • Built-in AI for enhanced relevance.
    • Smooth integration with other Azure services.

    In short: it’s a smart search made user-friendly.

    Advantages of Integrating with Optimizely CMS

    Before we get into the benefits, let’s take a moment to consider how Azure AI Search compares to Optimizely’s native search functionalities. Optimizely Search (which relies on Lucene or Find/Search & Navigation) works well for straightforward keyword searches and basic filters, and it’s closely tied to the CMS. However, it doesn’t offer the advanced AI features, scalability, or flexibility that Azure provides right off the bat. Azure AI Search enriches the search experience with functionalities like semantic search, cognitive enhancements, and external data indexing, making it perfect for enterprise-level sites with intricate search requirements.

    Here’s why merging these two solutions is beneficial:

    • Improved search experiences with AI-based relevance.
    • Scalable and dependable – allow Azure to manage the heavy lifting.
    • Customized content indexing from your CMS using APIs or jobs.
    • Advanced options such as filtering, faceting, auto-complete, and more.

    Get Started with Azure AI Search

    To set up Azure AI Search, just follow these steps:

    1. Log in to the Azure Portal and look for AI Search.
    2. Click ‘Create’ to configure the following:
      • Name
      • Resource Group
      • Pricing Tier (including a free tier!)
      • Region

    Once created, make sure to note down the Search Service Name and Admin API Key – you’ll need these to send and retrieve

    Custom Scheduled Job to Sync Updated Content with Azure AI Search Using ServiceAPI

    By utilizing the Optimizely ServiceAPI, we can effectively get updated content and synchronize it with Azure AI Search. This process avoids the need to re-index the entire site, which helps boost performance.

    [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.";
        }
    }

    You can filter and transform the ServiceAPI response further to match your index schema.

    Custom Page Type and Controller/View to Query Azure Search

    Create a new page type to serve as a Search Results page.

    Search Page Type

    [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; }
    }

    Page Controller

    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);
        }
    }

    Search Page View

    @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 Search Advanced Use Cases

    • Semantic Search: Let Azure understand intent, not just keywords.
    • Auto-complete & Suggestions: Hook into search-as-you-type features.
    • Faceted Navigation: Create filters by category, tags, etc.
    • AI Enrichment: Use Azure’s skillsets to extract metadata, and analyse images, or OCR PDFs.
    • Multilingual Search: Azure supports search across multiple languages out of the box.

    Summary

    Integrating Azure AI Search with Optimizely CMS can truly take your site search from basic to brilliant. With a bit of setup and some clean code, you’re empowering users with fast, smart, and scalable content discovery.

    This blog is also published here

    Source: Read More 

    Facebook Twitter Reddit Email Copy Link
    Previous ArticleThe Power of Linux Shell Environment Variables
    Next Article Minneapolis, Let’s Talk AI at Agentforce World Tour

    Related Posts

    Development

    Maintaining Data Consistency with Laravel Database Transactions

    August 16, 2025
    Development

    Building a Multi-Step Form With Laravel, Livewire, and MongoDB

    August 16, 2025
    Leave A Reply Cancel Reply

    For security, use of Google's reCAPTCHA service is required which is subject to the Google Privacy Policy and Terms of Use.

    Continue Reading

    Leaked Meta Quest 3S Xbox Edition could launch tomorrow

    Operating Systems

    End-to-End DevSecOps in CI/CD Pipelines: Build Secure Apps with Sast, Dast and Azure DevOps

    Development

    CVE-2025-3846 – Markparticle WebServer SQL Injection Vulnerability

    Common Vulnerabilities and Exposures (CVEs)

    From the “Department of No” to a “Culture of Yes”: A Healthcare CISO’s Journey to Enabling Modern Care

    Development

    Highlights

    CVE-2025-7213 – FNKvision FNK-GU2 UART Interface Debug Interface Access Control Vulnerability

    July 9, 2025

    CVE ID : CVE-2025-7213

    Published : July 9, 2025, 3:15 a.m. | 3 hours, 22 minutes ago

    Description : A vulnerability classified as critical has been found in FNKvision FNK-GU2 up to 40.1.7. Affected is an unknown function of the component UART Interface. The manipulation leads to on-chip debug and test interface with improper access control. It is possible to launch the attack on the physical device. The complexity of an attack is rather high. The exploitability is told to be difficult. The exploit has been disclosed to the public and may be used.

    Severity: 6.4 | MEDIUM

    Visit the link for more details, such as CVSS details, affected products, timeline, and more…

    Critical Wazuh Server RCE Vulnerability Exploited to Deploy Mirai Variants

    June 9, 2025

    CVE-2025-49445 – WP Map Plugins Interactive UK Regional Map CSRF Vulnerability

    June 6, 2025

    HPE StoreOnce Faces Critical CVE-2025-37093 Vulnerability — Urges Immediate Patch Upgrade

    June 5, 2025
    © DevStackTips 2025. All rights reserved.
    • Contact
    • Privacy Policy

    Type above and press Enter to search. Press Esc to cancel.