Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

elasticsearch c#/.net client recommendation [closed]

Tags:

Which elasticsearch c#/.net client do you recommend?

1 - Nest: https://github.com/Mpdreamz/NEST/commits/master

2 - elasticsearch.net: https://github.com/medcl/ElasticSearch.Net/commits/master

like image 578
sirmak Avatar asked Aug 24 '11 10:08

sirmak


People also ask

What is Elasticsearch C#?

Elasticsearch is a scalable open-source full-text searching tool and also analytics engine. It is used to save, search, and analyze huge data faster and also in real time. First of all, Elasticsearch is Rest Service. We can communicate with any Elasticsearch Service, using four verbs or functions.

What is Elasticsearch is used for?

Elasticsearch is a distributed search and analytics engine built on Apache Lucene. Since its release in 2010, Elasticsearch has quickly become the most popular search engine and is commonly used for log analytics, full-text search, security intelligence, business analytics, and operational intelligence use cases.

What programming language does Elasticsearch use?

Elasticsearch is developed in Java and is dual-licensed under the source-available Server Side Public License and the Elastic license, while other parts fall under the proprietary (source-available) Elastic License.

Is Elasticsearch a NoSQL?

Since its release in 2010, Elasticsearch has become one of the world's top ten databases by popularity. Originally based on Apache's Lucene search engine, it remains an open-source product, built using Java, and storing data in an unstructured NoSQL format.


1 Answers

IMHO, I think both still need more work as they don't have complete coverage of the ElasticSearch REST API, percolate and complete Query DSLs being the most conspicuous missing.

Having used NEST I think that is more suitable if you want strongly typed results:-

QueryResponse<Jobtitle> queryResults = _client.Search<Jobtitle>(search);

where as ElasticSearch.Net you get back something like:-

var result = client.QueryDSL.Search(index, new string[] { "type" }, query, 0, 5);
foreach (var VARIABLE in result.GetHits().Hits)
{
Console.WriteLine(VARIABLE.Fields["name"]);
}

Whilst both APIs are missing features, they are on github so you can fork and help fill in the missing features.

I chose in the end to generate my own simple client from the thrift IDL

like image 141
Ian Avatar answered Sep 18 '22 06:09

Ian