This is the documentation page for Elasticsearch.Net and NEST, the two official .NET clients for Elasticsearch.

Why two clients?edit

Elasticsearch.Net is a low level, dependency free client that has no opinions about how you build and represent your requests and responses. It has abstracted enough so that all the Elasticsearch API endpoints are represented as methods but not too much to get in the way of how you want to build your json/request/response objects. It also comes with built in, configurable/overridable cluster failover retry mechanisms. Elasticsearch is elastic so why not your client?

NEST is a high level client that maps all requests and responses as types, and comes with a strongly typed query DSL that maps 1 to 1 with the Elasticsearch query DSL. It takes advantage of specific .NET features to provide higher level abstractions such as auto mapping of CLR types. Internally, NEST uses and still exposes the low level Elasticsearch.Net client, providing access to the power of NEST and allowing users to drop down to the low level client when wishing to.

Please read the getting started guide for both Elasticsearch.Net and NEST.

Elasticsearch Version Compatibilityedit

Language clients are forward compatible; meaning that clients support communicating with greater or equal minor versions of Elasticsearch. Elasticsearch language clients are only backwards compatible with default distributions and without guarantees made.

Questions, bugs, comments, feature requestsedit

Bug reports and feature requests are more than welcome on the github issues pages! We try to at least reply within the same day.

For more general questions and comments, we monitor questions tagged with nest and elasticsearch-net on Stackoverflow, as well as discussions opened on our Discourse site, By mentioning NEST or Elasticsearch.Net in the title helps folks quickly identify what the question is about.