Skip to content

Commit

Permalink
[Backport 8.7][DOCS] Adds getting started content based on the templa…
Browse files Browse the repository at this point in the history
…te (#7770) (#7774)

Co-authored-by: István Zoltán Szabó <szabosteve@gmail.com>
  • Loading branch information
github-actions[bot] and szabosteve committed Jul 4, 2023
1 parent 7eca1dd commit 4b93151
Show file tree
Hide file tree
Showing 4 changed files with 163 additions and 0 deletions.
161 changes: 161 additions & 0 deletions docs/getting-started.asciidoc
Original file line number Diff line number Diff line change
@@ -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 <<installation>> 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("<CLOUD_ID>", new ApiKey("<API_KEY>"));
----

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 <<connecting>> 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 <<examples>> 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<MyDoc>(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<MyDoc>(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<MyDoc, MyDoc>("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 <<recommendations>> page to learn more about how to use the
client the most efficiently.
Binary file added docs/images/create-api-key.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/es-endpoint.jpg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 2 additions & 0 deletions docs/index.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ include::{asciidoc-dir}/../../shared/attributes.asciidoc[]

include::intro.asciidoc[]

include::getting-started.asciidoc[]

include::install.asciidoc[]

include::connecting.asciidoc[]
Expand Down

0 comments on commit 4b93151

Please sign in to comment.