minhsangdotcom.TheTemplate.ElasticsearchFluentConfig
1.0.1-alpha
This is a prerelease version of minhsangdotcom.TheTemplate.ElasticsearchFluentConfig.
dotnet add package minhsangdotcom.TheTemplate.ElasticsearchFluentConfig --version 1.0.1-alpha
NuGet\Install-Package minhsangdotcom.TheTemplate.ElasticsearchFluentConfig -Version 1.0.1-alpha
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="minhsangdotcom.TheTemplate.ElasticsearchFluentConfig" Version="1.0.1-alpha" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="minhsangdotcom.TheTemplate.ElasticsearchFluentConfig" Version="1.0.1-alpha" />
<PackageReference Include="minhsangdotcom.TheTemplate.ElasticsearchFluentConfig" />
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add minhsangdotcom.TheTemplate.ElasticsearchFluentConfig --version 1.0.1-alpha
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: minhsangdotcom.TheTemplate.ElasticsearchFluentConfig, 1.0.1-alpha"
#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.
#:package minhsangdotcom.TheTemplate.ElasticsearchFluentConfig@1.0.1-alpha
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=minhsangdotcom.TheTemplate.ElasticsearchFluentConfig&version=1.0.1-alpha&prerelease
#tool nuget:?package=minhsangdotcom.TheTemplate.ElasticsearchFluentConfig&version=1.0.1-alpha&prerelease
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
Fluent Configurations for elasticsearch in c#.
Let check the source code out at Github
Check out My clean architecture solution template at Github
Work well with Elastic.Clients.Elasticsearch package
Usage Example
public class AuditLogConfiguration : IElasticsearchDocumentConfigure<AuditLog>
{
public void Configure(ref ElasticsearchConfigBuilder<AuditLog> buider, string? prefix = null)
{
// declare the name of index
buider.ToIndex("audit_log");
// set key
buider.HasKey(key => key.Id);
// add settings
buider.Settings(setting =>
setting.Analysis(x =>
x.Analyzers(an =>
an.Custom(
"myTokenizer",
ca => ca.Filter(["lowercase"]).Tokenizer("myTokenizer")
)
.Custom(
"standardAnalyzer",
ca => ca.Filter(["lowercase"]).Tokenizer("standard")
)
)
.Tokenizers(tz =>
tz.NGram(
"myTokenizer",
config =>
config
.MinGram(3)
.MaxGram(4)
.TokenChars([TokenChar.Digit, TokenChar.Letter])
)
)
)
);
// Map properties Manually
buider.Properties(config =>
config
.Text(
t => t.Id,
config =>
config
.Fields(f =>
f.Keyword("Id")
)
.Analyzer("myTokenizer")
.SearchAnalyzer("standardAnalyzer")
)
.Text(
txt => txt.Entity,
config =>
config
.Fields(f =>
f.Keyword("Entity")
)
.Analyzer("myTokenizer")
.SearchAnalyzer("standardAnalyzer")
)
.ByteNumber(b => b.Type)
.Object(o => o.OldValue!)
.Object(o => o.NewValue!)
.Text(txt => txt.ActionPerformBy!)
.Keyword(d => d.CreatedAt)
);
// Ignore properties
buider.Ignores([x => x.NewValue!, x => x.Type]);
}
}
Register
ElasticsearchSettings elasticsearch =
configuration.GetSection(nameof(ElasticsearchSettings)).Get<ElasticsearchSettings>()
?? new();
if (elasticsearch.IsEnbaled)
{
IEnumerable<Uri> nodes = elasticsearch!.Nodes.Select(x => new Uri(x));
var pool = new StaticNodePool(nodes);
string? userName = elasticsearch.Username;
string? password = elasticsearch.Password;
var settings = new ElasticsearchClientSettings(pool).DefaultIndex(
elasticsearch.DefaultIndex!
);
if (!string.IsNullOrWhiteSpace(userName) && !string.IsNullOrWhiteSpace(password))
{
settings
.Authentication(new BasicAuthentication(userName, password))
// without ssl trust
.ServerCertificateValidationCallback((o, certificate, chain, errors) => true)
.ServerCertificateValidationCallback(CertificateValidations.AllowAll);
}
IEnumerable<ElasticConfigureResult> elkConfigbuilder =
ElasticsearchRegisterHelper.GetElasticsearchConfigBuilder(
Assembly.GetExecutingAssembly(),
elasticsearch.PrefixIndex!
);
// add configurations of id, ignore properties
ElasticsearchRegisterHelper.ConfigureConnectionSettings(ref settings, elkConfigbuilder);
var client = new ElasticsearchClient(settings);
// add configuration of properties
await ElasticsearchRegisterHelper.ElasticFluentConfigAsync(
elasticsearchClient,
configures
);
await DataSeeding.SeedingAsync(client, elasticsearch.PrefixIndex)
services
.AddSingleton(client)
.AddSingleton<IElasticsearchServiceFactory, ElasticsearchServiceFactory>();
}
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. 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. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net8.0
- CaseConverter (>= 2.0.1)
- Elastic.Clients.Elasticsearch (>= 8.17.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories (1)
Showing the top 1 popular GitHub repositories that depend on minhsangdotcom.TheTemplate.ElasticsearchFluentConfig:
Repository | Stars |
---|---|
minhsangdotcom/clean-architecture
Clean Architecture Solution Template is for .NET Core🚀.
|
Version | Downloads | Last Updated |
---|---|---|
1.0.1-alpha | 304 | 4/6/2025 |
1.0.0 | 210 | 3/10/2025 |