EPiInnovate.ElasticSearch.EPiServer.Core 1.1.1

dotnet add package EPiInnovate.ElasticSearch.EPiServer.Core --version 1.1.1
NuGet\Install-Package EPiInnovate.ElasticSearch.EPiServer.Core -Version 1.1.1
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="EPiInnovate.ElasticSearch.EPiServer.Core" Version="1.1.1" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add EPiInnovate.ElasticSearch.EPiServer.Core --version 1.1.1
#r "nuget: EPiInnovate.ElasticSearch.EPiServer.Core, 1.1.1"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install EPiInnovate.ElasticSearch.EPiServer.Core as a Cake Addin
#addin nuget:?package=EPiInnovate.ElasticSearch.EPiServer.Core&version=1.1.1

// Install EPiInnovate.ElasticSearch.EPiServer.Core as a Cake Tool
#tool nuget:?package=EPiInnovate.ElasticSearch.EPiServer.Core&version=1.1.1

Introduction

EPiInnovate ElasticSearch EPiServer is a advanced plugin designed for .NET Core that extends the search capabilities of the EPiServer (now Optimizely) CMS and Commerce platforms by integrating with ElasticSearch. The plugin integrates ElasticSearch, which, similar to EpiServer Find, is built on the Lucene engine. This integration results in a more powerful and swift search capability within the EPiServer platform. For more information, visit www.epiinnovate.com.

Requirements

  • .NET 6.0 or higher (including .NET 7.0, .NET 8.0+)
  • EPiServer CMS version 12.2.0 or higher
  • Elasticsearch version 5.6 or higher
  • Ingest Attachment Processor Plugin for Elasticsearch

Configure ElasticSearch

To set up Elasticsearch correctly, please adhere to the following guidance:

  • Install the latest version of Elasticsearch (minimum supported version 5.6).
  • Configure settings to match your environment's needs.
  • Define user roles and configure heap size when running as a service.
  • Install the Ingest Attachment Processor Plugin for file indexing.
  • Refer to the official documentation for detailed setup instructions.

Configure Your Project for .NET Core

Install the following Nuget packages in your project from Nuget.org:

  • EPiInnovate.ElasticSearch.EPiServer.Core
  • EPiInnovate.ElasticSearch.EPiServer.CMS
  • EPiInnovate.ElasticSearch.EPiServer.Commerce (optional, for Commerce support)

To integrate EPiInnovate.ElasticSearch.EPiServer with your .NET Core application, configure the necessary services within the Startup.cs file. This process involves registering the service so that it is available for your application to use. Below is a step-by-step guide for adding this configuration to your Startup.cs file.

  1. Within the ConfigureServices method, you must register the ElasticSearch services using the AddEpiElasticSearch() extension method.
  2. In the Configure method, you must invoke the UseEpiElasticSearch() to initialize the ElasticSearch service.

Add the following C# code snippets to the respective methods in the Startup.cs file of your .NET Core application:

using EPiInnovate.ElasticSearch.EPiServer.CMS.Extensions;

public void ConfigureServices(IServiceCollection services)
{
    // Register EpiElasticSearch services
    services.AddEpiElasticSearch();
}

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    // Initialize EpiElasticSearch
    app.UseEpiElasticSearch();
}

Configure .NET Core appsettings.json

    "EpiElasticSearch": {
      "License": "" 
      "Host": "http://localhost:9200",
      "BulkSize": 1000,
      "ProviderMaxResults": 100,
      "CloseIndexDelay": 500,
      "IgnoreXhtmlStringContentFragments": false,
      "ClientTimeoutSeconds": 100,
      "Username": "",
      "Password": "",
      "Shards": 5,
      "Replicas": 1,
      "TrackingConnectionStringName": "EPiServerDB",
      "Indices": [
        {
          "Name": "my-index-name",
          "DisplayName": "My Index",
          "SynonymsFile": "",
          "Default": true
        }
      ],
      "Files": {
        "MaxSize": "50MB",
        "Enabled": true,
        "Extensions": [
          "doc",
          "txt"
        ]
      }
    }

The only essential configuration parameter is Host; the others are optional and pre-populated with default values as specified:

Configuration Parameters:

  • License: Replace with your demo or purchased license key from www.epiinnovate.com
  • Host: The address and port for the Elasticsearch server.
  • BulkSize: Specifies the batch size for bulk document updates.
  • ProviderMaxResults: Determines the number of search results displayed in the UI.
  • CloseIndexDelay: Time in milliseconds to wait between index open/close actions. Slower servers may require a longer delay.
  • IgnoreXhtmlStringContentFragments: Indicates whether to disregard fragments in XhtmlStrings.
  • ClientTimeoutSeconds: The HttpClient timeout duration in seconds.
  • Username: For basic authentication, the username.
  • Password: For basic authentication, the password.
  • Shards: The default shard count for new indices.
  • Replicas: The default replica count for new indices.
  • TrackingConnectionStringName: The identifier for the SQL connection string used for activity tracking.

In the Indices array, define your indices, typically one is sufficient. If multiple are used, the primary index for IContent should be identified by setting Default to true.

Example:

    {
    "Name": "my-index-name",
    "DisplayName": "My Index",
    "SynonymsFile": "synonyms/mysynonyms.txt"
    }
  • Name: The actual name of the index, which will be appended with a language code for each supported language.
  • DisplayName: The friendly name of the index, which appears in user-facing scenarios.
  • SynonymsFile: An optional setting for specifying a path to a pre-existing synonyms file relative to the server's config-folder. This file should be available upon index creation and replicated across all cluster nodes, named with the language code as a prefix. For example, if Norwegian and Swedish are active languages, SynonymsFile set to synonyms/mysynonyms.txt would require no_mysynonyms.txt and se_mysynonyms.txt to be in the config-folder.

Example:

"Files": {
  "Enabled": true,
  "MaxSize": "Size limit in bytes or with suffix 'KB', 'MB', or 'GB'",
  "Extensions": ["Array of file extensions to be indexed"]
}
  • Enabled: A boolean indicating whether file indexing is active.
  • MaxSize: The maximum file size allowed for indexing, specified in bytes or with a size suffix.
  • Extensions: A list of file extensions that should be indexed.

Create the "ElasticsearchAdmins" Group

You must create a group named ElasticsearchAdmins in Optimizely/Episerver which will be used for [explain purpose of the group briefly].

To create the group, follow these steps:

  1. Log in to your Optimizely/Episerver CMS.
  2. Navigate to the admin panel.
  3. Go to the "Groups" section.
  4. Click on "Create new group".
  5. Name the group ElasticsearchAdmins and save it.

Add Users to the Group

Once the group is created, you'll need to add users to it. Any user that is supposed to work with EPiInnovate.ElasticSearch.EPiServer should be a member of this group.

Here's how you add users to the ElasticsearchAdmins group:

  1. Still in the admin panel, find the ElasticsearchAdmins group you just created.
  2. Click on the group to open its details.
  3. Navigate to the "Users" tab within the group details.
  4. Add the relevant users by selecting them and confirming the action.

License Key

Before using this package, you will need to acquire a license key. There are two types of keys available:

  1. Demo License Key: You can obtain a demo license key by visiting www.epiinnovate.com/demo. This key allows you to activate and use all the features of the package for a trial period. It's a convenient way to explore the functionalities and assess whether the package meets your requirements before making any commitment.
  2. Purchase License Key: If the package suits your needs and you decide to use it for an extended period or for commercial purposes, you must purchase a full license key. The purchased license will ensure uninterrupted access to the package features and support.

For additional information and assistance, consult our documentation at https://www.epiinnovate.com/docs. For support or other inquiries, contact us at support@epiinnovate.com.

Product Compatible and additional computed target framework versions.
.NET net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 is compatible.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (2)

Showing the top 2 NuGet packages that depend on EPiInnovate.ElasticSearch.EPiServer.Core:

Package Downloads
EPiInnovate.ElasticSearch.EPiServer.CMS

The EPiInnovate.ElasticSearch.EPiServer.CMS library ensures seamless integration of Elasticsearch with Optimizely/EPiserver CMS, providing advanced search capabilities and boosted performance. It's designed for ease of installation and configuration, enabling developers to fully exploit Elasticsearch's features within the Optimizely/EPiserver ecosystem. Fully compatible with .NET Core.

EPiInnovate.ElasticSearch.EPiServer.Commerce

The EPiInnovate.ElasticSearch.EPiServer.Commerce package integrates Elasticsearch's powerful search and analytics capabilities with the Optimizely/EPiserver Commerce platform. This integration facilitates complex search queries, enhances search relevance, and improves the overall user shopping experience through faster and more accurate search results. It simplifies the process of leveraging Elasticsearch's full potential within the commerce framework, ensuring a scalable and performant e-commerce search solution. Fully compatible with .NET Core.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.1.1 179 12/20/2023
1.1.0 102 12/19/2023
1.0.6 136 12/18/2023
1.0.5 146 12/13/2023
1.0.4 140 12/8/2023
1.0.3 143 11/21/2023
1.0.2 95 11/19/2023