EPiInnovate.ElasticSearch.EPiServer.Core
1.0.5
See the version list below for details.
dotnet add package EPiInnovate.ElasticSearch.EPiServer.Core --version 1.0.5
NuGet\Install-Package EPiInnovate.ElasticSearch.EPiServer.Core -Version 1.0.5
<PackageReference Include="EPiInnovate.ElasticSearch.EPiServer.Core" Version="1.0.5" />
paket add EPiInnovate.ElasticSearch.EPiServer.Core --version 1.0.5
#r "nuget: EPiInnovate.ElasticSearch.EPiServer.Core, 1.0.5"
// Install EPiInnovate.ElasticSearch.EPiServer.Core as a Cake Addin #addin nuget:?package=EPiInnovate.ElasticSearch.EPiServer.Core&version=1.0.5 // Install EPiInnovate.ElasticSearch.EPiServer.Core as a Cake Tool #tool nuget:?package=EPiInnovate.ElasticSearch.EPiServer.Core&version=1.0.5
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 5.0 or higher (including .NET 6.0, .NET 7.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.
- Within the
ConfigureServices
method, you must register the ElasticSearch services using theAddEpiElasticSearch()
extension method. - In the
Configure
method, you must invoke theUseEpiElasticSearch()
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.comHost
: 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 tosynonyms/mysynonyms.txt
would requireno_mysynonyms.txt
andse_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:
- Log in to your Optimizely/Episerver CMS.
- Navigate to the admin panel.
- Go to the "Groups" section.
- Click on "Create new group".
- 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:
- Still in the admin panel, find the
ElasticsearchAdmins
group you just created. - Click on the group to open its details.
- Navigate to the "Users" tab within the group details.
- 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:
- 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.
- 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 | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 is compatible. net5.0-windows was computed. 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. |
-
net5.0
- EPiServer.CMS.UI (>= 12.2.0 && <= 12.15.0)
- Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation (>= 5.0.0 && < 6.0.0)
-
net6.0
- EPiServer.CMS.UI (>= 12.4.0 && <= 12.24.0)
- Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation (>= 6.0.0 && < 7.0.0)
-
net7.0
- EPiServer.CMS.UI (>= 12.16.0 && <= 12.24.0)
- Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation (>= 7.0.0 && < 8.0.0)
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.