diff --git a/docs/getting-started.asciidoc b/docs/getting-started.asciidoc new file mode 100644 index 00000000000..a5ede5d7afd --- /dev/null +++ b/docs/getting-started.asciidoc @@ -0,0 +1,161 @@ +[[getting-started-net]] +== Getting started + +This page guides you through the installation process of the .NET client, shows +you how to instantiate the client, and how to perform basic Elasticsearch +operations with it. + +[discrete] +=== Requirements + +.NET Core, .NET 5+ or .NET Framework (4.6.1 and higher). + +[discrete] +=== Installation + +To install the latest version of the client for SDK style projects, run the following command: + +[source,shell] +-------------------------- +dotnet add package Elastic.Clients.Elasticsearch +-------------------------- + +Refer to the <> page to learn more. + + +[discrete] +=== Connecting + +You can connect to the Elastic Cloud using an API key and the Elasticsearch +endpoint. + +[source,net] +---- +var client = new ElasticsearchClient("", new ApiKey("")); +---- + +Your Elasticsearch endpoint can be found on the **My deployment** page of your +deployment: + +image::images/es-endpoint.jpg[alt="Finding Elasticsearch endpoint",align="center"] + +You can generate an API key on the **Management** page under Security. + +image::images/create-api-key.png[alt="Create API key",align="center"] + +For other connection options, refer to the <> section. + + +[discrete] +=== Operations + +Time to use Elasticsearch! This section walks you through the basic, and most +important, operations of Elasticsearch. For more operations and more advanced +examples, refer to the <> page. + + +[discrete] +==== Creating an index + +This is how you create the `my_index` index: + +[source,net] +---- +var response = await client.Indices.CreateAsync("my_index"); +---- + + +[discrete] +==== Indexing documents + +This is a simple way of indexing a document: + +[source,net] +---- +var doc = new MyDoc +{ + Id = 1, + User = "flobernd", + Message = "Trying out the client, so far so good?" +}; + +var response = await client.IndexAsync(doc, "my_index"); +---- + + +[discrete] +==== Getting documents + +You can get documents by using the following code: + +[source,net] +---- +var response = await client.GetAsync(id, idx => idx.Index("my_index")); + +if (response.IsValidResponse) +{ + var doc = response.Source; +} +---- + + +[discrete] +==== Searching documents + +This is how you can create a single match query with the .NET client: + +[source,net] +---- +var response = await client.SearchAsync(s => s + .Index("my_index") + .From(0) + .Size(10) + .Query(q => q + .Term(t => t.User, "flobernd") + ) +); + +if (response.IsValidResponse) +{ + var doc = response.Documents.FirstOrDefault(); +} +---- + + +[discrete] +==== Updating documents + +This is how you can update a document, for example to add a new field: + +[source,net] +---- +doc.Message = "This is a new message"; + +var response = await client.UpdateAsync("my_index", 1, u => u + .Doc(doc)); +---- + + +[discrete] +==== Deleting documents + +[source,net] +---- +var response = await client.DeleteAsync("my_index", 1); +---- + + +[discrete] +==== Deleting an index + +[source,net] +---- +var response = await client.Indices.DeleteAsync("my_index"); +---- + + +[discrete] +== Further reading + +* Refer to the <> page to learn more about how to use the +client the most efficiently. \ No newline at end of file diff --git a/docs/images/create-api-key.png b/docs/images/create-api-key.png new file mode 100644 index 00000000000..d75c230300b Binary files /dev/null and b/docs/images/create-api-key.png differ diff --git a/docs/images/es-endpoint.jpg b/docs/images/es-endpoint.jpg new file mode 100644 index 00000000000..6da2e75659d Binary files /dev/null and b/docs/images/es-endpoint.jpg differ diff --git a/docs/index.asciidoc b/docs/index.asciidoc index 48afe9daf15..6cb52216285 100644 --- a/docs/index.asciidoc +++ b/docs/index.asciidoc @@ -10,6 +10,8 @@ include::{asciidoc-dir}/../../shared/attributes.asciidoc[] include::intro.asciidoc[] +include::getting-started.asciidoc[] + include::install.asciidoc[] include::connecting.asciidoc[]