For developers: Compare search services

Sitefinity CMS has three built-in search services: Lucene, Azure Search service, and Elasticsearch service. By default, Sitefinity CMS uses Lucene, but you can switch between search services or tune their settings. To help you choose which search service suits your needs best, examine the following table, summarizing each service's advantages and disadvantages.

Lucene (default)

Azure Search

Elasticsearch

Pros

Local (stores the index locally, so it is easy to backup)

Fast

Free of charge (does not need additional subscription)

No need to configure additional resources

Decouples the search index from the local storage

The search index can be easily consumed from other applications

The system uses internally Elasticsearch (and respectively Lucene) with the latest available version

Maintenance by Microsoft (upgrades, new features, and so on)

Decouples the search index from the local storage

The search index can be easily consumed from other applications

The system uses internally the thelatest available version of Lucene

Free of charge (does not need additional subscription)

Powerful fluent API

Best performance and speed

Cons

The system does not use the latest version, but version Lucene.2.9.2

Cannot be used on cloud deployments of Sitefinity

When the search index is in the cloud, modification of the search index data is not supported. You can only use the index in read mode

Search Index could not be used easily by other applications

Azure Search subscription is not free of charge

Requires additional setup

Slower than Lucene and Elasticsearch

Limited extensibility

Azure Search is still in beta and does not have a convenient C# API (Sitefinity CMS depends on RedDogSearch for a C# API, as opposed to the REST API)

Requires additional setup: JAVA application server with Elasticsearch configured, as well as configuration in Sitefinity

Compare performance

The following load test compares the performance of the three search services. The test does not account for machine parameters but highlights the importance of where the server is located. The test includes the search for different news items and is run:

With 50 concurrent users

Time period is 10 minutes

Azure Search service is running on the cloud

Elasticsearch is running on the same machine

Lucene uses local storage for index data

Following are the load test results:

The results show Elasticsearch is the fastest search service because it uses the latest Lucene version. The Azure service is the slowest one but if you deploy Sitefinity CMS on Azure and use Azure Search on a closer location, the search service will also be faster.

In general, all search services have good performance and they return results for less than a half second even on a high load.