elasticsearch-net
This strongly-typed, client library enables working with Elasticsearch. It is the official client maintained and supported by Elastic.
Elasticsearch is a search engine used by many applications to index and query large amounts of data quickly. This repository contains the official .NET client library for Elasticsearch, maintained by the company behind Elasticsearch, Elastic. If you are building an application in C# or another .NET language and want to connect it to Elasticsearch, this library is the standard way to do that.
The client gives you a way to interact with Elasticsearch from your .NET code using strongly-typed objects rather than raw text. This means your IDE can catch errors at compile time and you get autocompletion for fields, queries, and responses. Under the hood, the library handles the details of making HTTP connections to your Elasticsearch server, managing connection pools, and retrying failed requests.
Common operations the client supports include creating and deleting indexes (the structures that store your data), adding and updating documents within those indexes, and searching across documents using Elasticsearch's query language. All of these operations map to typed C# methods rather than requiring you to write raw JSON or HTTP calls manually.
One important versioning note: the version numbers of this client follow the Elasticsearch server version rather than traditional semantic versioning. If you are running Elasticsearch 9.x, you should use the 9.x client. Minor or patch versions can occasionally include breaking changes, so checking the release notes before upgrading is recommended.
Installation is done through NuGet, the standard .NET package manager. Full setup guides, connection examples, and a complete API reference are available in the official Elastic documentation.