Azure search services

Overview

By default, in Sitefinity CMS search indexes are generated and stored locally using Lucene.NET search library. If your project resides on a cloud storage, you can use alternative search index generation and storage on external services - in the cloud on Azure Search or an external Elasticsearch server.

Setup Azure Cognitive Search

To communicate with Azure Cognitive Search, Sitefinity uses Azure.Search.Documents 11.4.0

To use Azure Cognitive Search for Sitefinity CMS search indexes, perform the following:

  1. Follow Azure Cognitive Search documentation to create an instance of Azure Cognitive Search at https://azure.microsoft.com/en-us/products/search/.
  2. Obtain the Service name and Admin API key.
  3. In Sitefinity CMS, navigate to Administration » Settings.
  4. Click Search.
  5. Under Which search service to use in your site?, select Azure Search.
  6. In Search service name, enter your Azure Cognitive Search service name.

    NOTE: You enter only the name of the search service and not the full URL. For example, if the URL is https://test.search.windows.net, as search service name, you must enter only test

  7. In Admin API key, enter your Azure Cognitive Search service API key.
  8. To test Sitefinity's connection with your Azure Search service, click Test connection.
  9. Click Save changes.

NOTE: Search results are ordered based on @score parameter. This method returns the relevance of the result for each search term. By using @score parameter, the most relevant results come first. 

For more information, see Azure Cognitive Search libraries for .NET

Search index fields and supported data types

When you add a search index to Azure Cognitive Search, Sitefinity CMS creates by default the following fields:
  • Content
  • ContentType
  • Id
  • IdentityField
  • Language
  • LastModified
  • Link
  • OriginalItemId
  • PipeId
  • Provider
  • PublicationDate
  • Summary
  • Title
IMPORTANT: Do not add any of these fields as Additional fields for indexing, because you will get a duplicate field exception and will not be able to index.
You must specify the type of the additional fields for indexing according to the data type mapping provided in the following table.
Azure Search data type Sitefinity type
Edm.String Short text
Long text
Edm.DateTimeOffset  Data and Time 
Edm.Int32  Numeric whole number (NumberWhole) 
Edm.Double Numeric decimal number (NumberDecimal)
Edm.Boolean  Yes / No 
Collection(Edm.String) Classification
Choices

Scoring profiles

Scoring profiles in Azure Cognitive Search allow you to configure the way search results are ranked, based on one or more custom-defined criteria. They are part of the index definition and consist of weighted fields and functions.

Use weighted fields when you want to prioritize search results in a specific field. For instance, prioritize results that are in the Content or Title fields over other fields.

With functions, you can prioritize results by the time period they were published in, the numeric value of the results, or by tags. Sitefinity CMS supports the following functions: 

  • freshness
  • magnitude
  • tag

For the tag function you also need to specify parameters. For more information, refer to Microsoft’s documentation Add scoring profiles to a search index.

Create scoring profiles

To create scoring profiles:

  1. Setup Sitefinity CMS to use Azure Cognitive Search.
  2. Create a search index. For more information, see Create search indexes.
  3. Add scoring profiles in the Microsoft Azure portal. For more information, refer to Microsoft’s documentation Add scoring profiles to a search index.
  4. Configure the Search box widget by performing procedure Search box widget » Configure the Search box widget.
    In Step 3, select the index you have created in Step 2 of this procedure.

IMPORTANT: When you use the Tag scoring function, you must add a Tags parameter in the Azure portal. When a Tags parameter is added to an index, you can configure these parameters in the advanced settings of the Search box widget. For more information, see Search box widget.

Increase your Sitefinity skills by signing up for our free trainings. Get Sitefinity-certified at Progress Education Community to boost your credentials.

Web Security for Sitefinity Administrators

The free standalone Web Security lesson teaches administrators how to protect your websites and Sitefinity instance from external threats. Learn to configure HTTPS, SSL, allow lists for trusted sites, and cookie security, among others.

Foundations of Sitefinity ASP.NET Core Development

The free on-demand video course teaches developers how to use Sitefinity .NET Core and leverage its decoupled architecture and new way of coding against the platform.

Was this article helpful?