.NET Nest vs HTML 5 RESTful API Performance in big data

I'm new in elasticsearch. we have a project with a lot of user interaction. Backend of the project is ASP.NET MVC and frontend is Angularjs. Backend and Frontend communicate with WEB API.
We use SQL Server for data storage and we'll use elasticsearch for Search Engine and retrieving data from server.
Elasticsearch can work upon of Nest and javascript API, is there any difference in performance between Nest and JS API (Specially in very big and complicated queries)?

NEST, the high level Elasticsearch .NET client, uses Elasticsearch's json REST API through Elasticsearch.Net, the low level .NET client, and exposes all of the endpoints with strong types, using JSON.Net for serialization.

Elasticsearch.Net itself does not expose endpoints with strong types but can work with string, byte[], object, and string, byte[] and object collections. It uses a simple json serializer to handle serialization so has no dependencies on any other serialization library.

NEST aims to be a fast client that "just works" for any scenario in which you want to use Elasticsearch. If you're using a limited subset of the API, you may be able to improve performance around serialization with custom serializers using something like JIL, and, if the approach is generic, we'd love to know to see if it could be rolled into NEST. You can write your own json serializer by implementing IElasticsearchSerializer. You may still want to use Elasticsearch.Net or NEST for making the request.


My product is developed in C# .Net and I'm using Elasticsearch.Net SDK.

My documents are not strongly typed hence I'm not able to use NEST SDK and I'm not able to find reference or sample CRUD operation code for weak-typed (JSON).

Can you please provide me online reference or sample code for CRUD operation?

Thanks in advance.


You can use any object including an anonymous type, to represent your document

Using Elasticsearch.Net low level client

var client = new ElasticLowLevelClient();
client.Index<string>("index", "type", new { foo = "foo", bar = 1 });

Using the low level client in NEST

var client = new ElasticClient();
client.Lowlevel.Index<string>("index", "type", new { foo = "foo", bar = 1 });

You can also pass a json string or byte array instead of an object. The string generic type parameter indicates the type for the response so in these examples it will be a json string.

Take a look at the landing page of the github repository for more introductory examples and also take a look at the client documentation.