Elasticsearch .NET Client
Pull request Compare This branch is 4672 commits behind elastic:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.



Strongly typed Elasticsearch client

NEST aims to be a .net client with a very concise API. Its main goal is to provide a solid strongly typed Elasticsearch client. It also has string/dynamic overloads for more dynamic usecases.

Indexing is as simple as:

var post = new Post() { Id = 12, ... }
var result = client.Index(post);

Indexing asynchronously is as easy as:

//t is a Task<ConnectionStatus>
var t = client.IndexAsync(post);

Searching is fluid:

var results = this.ConnectedClient.Search<ElasticSearchProject>(s => s
        .Fields(f => f.Id, f => f.Name)
        .SortAscending(f => f.LOC)
        .SortDescending(f => f.Name)
        .Query(q=>q.Term(f=>f.Name, "NEST", Boost: 2.0))

Read the documentation here

additionally @joelabrahamsson wrote a great intro into elasticsearch on .NET using NEST.

Also checkout the searchbox.io guys rocking NEST on AppHarbor with their demo project


Nest can be installed through NuGet:

PM> Install-Package NEST

Or searching for "elasticsearch" will get you to nest as well.

Questions, bugs, comments, requests

All of these are more then welcome on the github issues pages! I try to to at least reply within the same day.


Copyright (c) 2010 Martijn Laarman and everyone wonderful enough to contribute to NEST

A special shoutout to @stephenpope for allowing his port of the java factory based dsl Rubber to be merged into NEST. NEST now has two types of query dsl's (lambda and factory based)!

Some of the other wonderful features in NEST were pushed by these wonderful folks:


NEST is licensed under MIT. Refer to license.txt for more information.