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 fluent:
var results = this.ConnectedClient.Search<ElasticSearchProject>(s => s
.From(0)
.Size(10)
.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))
);
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.
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.