Purlin.Elasticsearch
1.2.1
Prefix Reserved
dotnet add package Purlin.Elasticsearch --version 1.2.1
NuGet\Install-Package Purlin.Elasticsearch -Version 1.2.1
<PackageReference Include="Purlin.Elasticsearch" Version="1.2.1" />
<PackageVersion Include="Purlin.Elasticsearch" Version="1.2.1" />
<PackageReference Include="Purlin.Elasticsearch" />
paket add Purlin.Elasticsearch --version 1.2.1
#r "nuget: Purlin.Elasticsearch, 1.2.1"
#:package Purlin.Elasticsearch@1.2.1
#addin nuget:?package=Purlin.Elasticsearch&version=1.2.1
#tool nuget:?package=Purlin.Elasticsearch&version=1.2.1
Purlin.Elasticsearch
Index naming
Indices are declared by an index descriptor (e.g. searchable_listings), used both in IndexConfiguration.IndexDescriptor and in Repository<TId, TDocument>(indexDescriptor).
The actual index name is resolved from ElasticsearchContextSettings:
IndexNames[indexDescriptor]- an explicit name, if configured (keys are case-insensitive){IndexPrefix}_{indexDescriptor}- ifIndexPrefixis setindexDescriptoras is
Explicit names allow each index to be named independently, e.g. sharing some indices between environments while keeping others separate.
The built-in migration_history and distributed_locks indices are resolved the same way.
"ElasticsearchContextSettings": {
"Uri": "...",
"ApiKey": "...",
"IndexNames": {
"searchable_listings": "pse_testing_searchable_listings",
"migration_history": "pse_testing_migration_history",
"distributed_locks": "pse_testing_distributed_locks"
}
}
Cluster monitoring
ElasticsearchContext.ClusterMonitor exposes read-only cluster health checks, e.g. to apply backpressure before the cluster starts rejecting requests.
GetMemoryPressureAsync reads the JVM memory pressure of every node (GET _nodes/stats/jvm) - the old generation heap usage, the same metric Elastic Cloud uses for its "JVM memory pressure" alerts.
Above ~75% garbage collection becomes aggressive, above ~85% circuit breakers start rejecting requests (circuit_breaking_exception).
The call never throws for Elasticsearch or transport failures; check IsSuccess. It requires the monitor cluster privilege for the configured API key.
var memoryPressure = await context.ClusterMonitor.GetMemoryPressureAsync(cancellationToken: cancellationToken);
if (memoryPressure.IsSuccess && memoryPressure.MaxMemoryPressurePercent >= 75)
{
// Slow down background writes
}
| 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 is compatible. 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 is compatible. 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. |
-
net10.0
- Elastic.Clients.Elasticsearch (>= 9.5.3)
- Microsoft.Extensions.DependencyInjection (>= 10.0.14)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.14)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.14)
-
net8.0
- Elastic.Clients.Elasticsearch (>= 9.5.3)
- Microsoft.Extensions.DependencyInjection (>= 10.0.14)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.14)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.14)
-
net9.0
- Elastic.Clients.Elasticsearch (>= 9.5.3)
- Microsoft.Extensions.DependencyInjection (>= 10.0.14)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.14)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.14)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.2.1 | 47 | 10/29/2026 |
| 1.2.0 | 48 | 10/29/2026 |
| 1.1.9 | 109 | 10/15/2026 |
| 1.1.8 | 513 | 9/8/2026 |
| 1.1.7 | 436 | 5/22/2026 |
| 1.1.6 | 145 | 5/6/2026 |
| 1.1.5 | 129 | 4/30/2026 |
| 1.1.4 | 225 | 4/13/2026 |
| 1.1.3 | 137 | 4/13/2026 |
| 1.1.2 | 186 | 3/29/2026 |
| 1.1.1 | 141 | 3/25/2026 |
| 1.1.0 | 188 | 2/26/2026 |
| 1.0.9 | 156 | 1/26/2026 |
| 1.0.8 | 162 | 1/22/2026 |
| 1.0.7 | 333 | 9/8/2025 |
| 1.0.6 | 926 | 7/10/2025 |
| 1.0.5 | 247 | 7/10/2025 |
| 1.0.4 | 232 | 7/1/2025 |
| 1.0.3 | 231 | 7/1/2025 |
| 1.0.2 | 234 | 6/30/2025 |