OpenSearch has two .NET clients: a low-level OpenSearch.Net client and a high-level OpenSearch.Client client.
OpenSearch.Net is a low-level .NET client that provides the foundational layer of communication with OpenSearch. It is dependency free, and it can handle round-robin load balancing, transport, and the basic request/response cycle. OpenSearch.Net contains methods for all OpenSearch API endpoints.
OpenSearch.Client is a high-level .NET client on top of OpenSearch.Net. It provides strongly typed requests and responses as well as Query DSL. It frees you from constructing raw JSON requests and parsing raw JSON responses by supplying models that parse and serialize/deserialize requests and responses automatically. OpenSearch.Client also exposes the OpenSearch.Net low-level client if you need it. OpenSearch.Client includes the following advanced functionality:
- Automapping: Given a C# type, OpenSearch.Client can infer the correct mapping to send to OpenSearch.
- Operator overloading in queries.
- Type and index inference.
You can use both .NET clients in a console program, a .NET core, an ASP.NET core, or in worker services.
To get started with OpenSearch.Client, follow the instructions in Getting started with the high-level .NET client or in More advanced features of the high-level .NET client, a slightly more advanced walkthrough.