Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Backport 8.7][DOCS] Adds getting started content based on the template #7770

Merged
merged 2 commits into from
Jul 4, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
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?"
};

szabosteve marked this conversation as resolved.
Show resolved Hide resolved
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"));

szabosteve marked this conversation as resolved.
Show resolved Hide resolved
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")
)
);

szabosteve marked this conversation as resolved.
Show resolved Hide resolved
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";

szabosteve marked this conversation as resolved.
Show resolved Hide resolved
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