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

      Turning User Research Into Real Organizational Change

      July 1, 2025

      June 2025: All AI updates from the past month

      June 30, 2025

      Building a culture that will drive platform engineering success

      June 30, 2025

      Gartner: More than 40% of agentic AI projects will be canceled in the next few years

      June 30, 2025

      I FINALLY got my hands on my most anticipated gaming laptop of 2025 — and it’s a 14-inch monster

      July 1, 2025

      This gimbal-tracking webcam has TWO cameras and a great price — but it may not be “private” enough

      July 1, 2025

      I spent two months using the massive Area-51 gaming rig — both a powerful beast PC and an RGB beauty queen

      July 1, 2025

      “Using AI is no longer optional” — Did Microsoft just make Copilot mandatory for its staff as a critical performance metric?

      July 1, 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

      June report 2025

      July 1, 2025
      Recent

      June report 2025

      July 1, 2025

      Make your JS functions smarter and cleaner with default parameters

      July 1, 2025

      Best Home Interiors in Hyderabad – Top Designers & Affordable Packages

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

      I FINALLY got my hands on my most anticipated gaming laptop of 2025 — and it’s a 14-inch monster

      July 1, 2025
      Recent

      I FINALLY got my hands on my most anticipated gaming laptop of 2025 — and it’s a 14-inch monster

      July 1, 2025

      This gimbal-tracking webcam has TWO cameras and a great price — but it may not be “private” enough

      July 1, 2025

      I spent two months using the massive Area-51 gaming rig — both a powerful beast PC and an RGB beauty queen

      July 1, 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

    Security

    Critical Vulnerability in Anthropic’s MCP Exposes Developer Machines to Remote Exploits

    July 1, 2025
    Security

    CVE-2025-6554 Actively Exploited Google Chrome Zeroday

    July 1, 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

    IBM QRadar Vulnerabilities Let Attackers Access Sensitive Configuration Files

    Security

    Newer Intel GPU Support Now Available on Ubuntu 24.04 LTS

    Linux

    CVE-2025-4713 – Campcodes Sales and Inventory System SQL Injection Vulnerability

    Common Vulnerabilities and Exposures (CVEs)

    CVE-2025-22377 – Samsung Exynos Heap-based Out-of-Bounds Write Vulnerability

    Common Vulnerabilities and Exposures (CVEs)

    Highlights

    Hackers exploit little-known WordPress MU-plugins feature to hide malware

    April 1, 2025

    A new security issue is putting WordPress-powered websites at risk. Hackers are abusing the “Must-Use”…

    TorrentLocker: Racketeering ransomware disassembled by ESET experts

    April 9, 2025

    Windows 11 24H2 System Restore points now expire after 60 days, Microsoft confirms

    June 21, 2025

    DOOM: The Dark Ages PC launch has been dismal, but not because it’s a bad game — I’m not surprised if player counts are lower

    May 19, 2025
    © DevStackTips 2025. All rights reserved.
    • Contact
    • Privacy Policy

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