It is with great pleasure to announce support for Elastic Search with ExamineX for Umbraco 🎉

You can now use Examine the way you normally would while having your indexes persisted reliably in Elastic Search instead of local Lucene files. Reliably persisted indexes means nothing is out of sync between servers, and indexes don’t need rebuilding when your site is moved or scaled.

Currently this is a beta release with no purchase options yet available (coming very soon!) which means you can try it out for free as an unlicensed version for up to 100 documents.

Installation

You can install via Nuget:

Getting Started

You’ll need the following in your appsettings.json:

  "ExamineX": {
    "SiteFriendlyName": "Your Site Friendly Name",
    "ElasticSearch": {      
      "ApiKey": "YourApiKey",
      "CloudId": "YourElasticSearchCloudId"
    }
  }

For ApiKey key generation see these docs.

Then you’ll need to enable the integration in your Startup.cs and add the .AddExamineXElasticSearch() call after the .AddComposers() call:

public void ConfigureServices(IServiceCollection services)
{
    services.AddUmbraco(_env, _config)
        .AddBackOffice()
        .AddWebsite()
        .AddDeliveryApi()
        .AddComposers()
        .AddExamineXElasticSearch()
        .Build();
}

More Configuration

There are some additional configuration options within the "ElasticSearch" section of your appsettings.json file:

  • CloudId - The CloudId of your Elastic Search Deployment.
  • Endpoint - If you are self hosting Elastic Search (i.e. Docker), then you can use Endpoint as a URL instead of the CloudId.
  • ApiKey - The ApiKey to use for authentication.
  • Thumbprint - If you are self hosting Elastic Search (i.e. Docker), then you can use the copied Thumbprint instead for authentication.
  • BasicAuthUsername - If you cannot use ApiKey for some reason and need to use basic authentication, then you can supply the username with this config option.
  • BasicAuthPassword - If you cannot use ApiKey for some reason and need to use basic authentication, then you can supply the password with this config option.
  • EnableDebugMode - Turns on settings that aid in debugging like DisableDirectStreaming() and PrettyJson() so that the original request and response JSON can be inspected. It also always asks the server for the full stack trace on errors. Defaults to false.
  • IncludeServerStackTraceOnError - Forces all requests to have ?error_trace=true querystring parameter appended, causing Elasticsearch to return stack traces as part of serialized exceptions. Defaults to false.

The same ExamineX configuration to disable specific indexes or ExamineX entirely still work with the Elastic Search integration.

Self hosting

It is certainly possible to test this all out for free with the Elastic Search docker container by following the documentation here. When self hosting, you need to use the Endpoint config option instead of the CloudId (see above).

Once installed and all configuration is in place, you will need to rebuild your indexes if this is an existing site. In the Examine Management dashboard of Umbraco, you will see that each index now has Elastic Search properties.

Keep in mind that because this will be running as unlicensed, there will be a 100 document limit for the indexes. If you want to request a trial license to remove this limitation, please send us an email at support@sdkits.com, the license information we will need is:

  • Cloud Id (or Endpoint).
  • Site Friendly Name.

Next steps

If you have any feedback please shoot us an email at support@sdkits.com. We’ll be working to get the new payment options in place and supporting documentation.

Happy searching!