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

Updates Get started page #183

Merged
merged 36 commits into from
Nov 19, 2024
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
c3b534d
Updates Get started page
kosabogi Nov 8, 2024
fe6e543
Updating serverless docs (#172)
georgewallace Nov 11, 2024
ae4cbb0
[Serverless] Adds Trained model autoscaling page (#139)
kosabogi Nov 12, 2024
a390bdc
Updates Get started to align with the new user flow
kosabogi Nov 12, 2024
cab06c9
Update serverless/pages/get-started.asciidoc
kosabogi Nov 13, 2024
b7fd129
Update serverless/pages/get-started.asciidoc
kosabogi Nov 13, 2024
0384cfd
Resolves comments
kosabogi Nov 13, 2024
e441ee7
Modifies Get started guide, renames and updates Create a new API key …
kosabogi Nov 14, 2024
1832321
Update serverless/pages/connecting-to-es-endpoint.asciidoc
kosabogi Nov 14, 2024
4d69b0f
Update serverless/pages/connecting-to-es-endpoint.asciidoc
kosabogi Nov 14, 2024
ce03fa6
Update serverless/pages/connecting-to-es-endpoint.asciidoc
kosabogi Nov 14, 2024
5e0aedf
Update serverless/pages/connecting-to-es-endpoint.asciidoc
kosabogi Nov 14, 2024
7e92800
Update serverless/pages/connecting-to-es-endpoint.asciidoc
kosabogi Nov 14, 2024
dd1f8d6
Update serverless/pages/connecting-to-es-endpoint.asciidoc
kosabogi Nov 14, 2024
6d97fe6
Adds details about alternative methods
kosabogi Nov 18, 2024
0845b96
Updates structure
kosabogi Nov 18, 2024
9aba6f8
Merge remote-tracking branch 'origin/main' into update-get-started-page
kosabogi Nov 18, 2024
1b2bb53
Merge branch 'main' into update-get-started-page
kosabogi Nov 18, 2024
14c9f3e
Revert id
leemthompo Nov 18, 2024
0bea4a1
fix other instance
leemthompo Nov 18, 2024
660097d
Update serverless/pages/get-started.asciidoc
kosabogi Nov 18, 2024
1b20770
Update serverless/pages/get-started.asciidoc
kosabogi Nov 18, 2024
6572cbc
Update serverless/pages/get-started.asciidoc
kosabogi Nov 18, 2024
fe511c5
Update serverless/pages/connecting-to-es-endpoint.asciidoc
kosabogi Nov 18, 2024
f4c851b
Update serverless/pages/get-started.asciidoc
kosabogi Nov 18, 2024
9ce292b
Updates page
kosabogi Nov 19, 2024
6f814c7
Update serverless/pages/get-started.asciidoc
kosabogi Nov 19, 2024
31bc23b
Update serverless/pages/get-started.asciidoc
kosabogi Nov 19, 2024
d6005f7
Update serverless/pages/get-started.asciidoc
kosabogi Nov 19, 2024
2b83622
Update serverless/pages/get-started.asciidoc
kosabogi Nov 19, 2024
97ef301
Update serverless/pages/get-started.asciidoc
kosabogi Nov 19, 2024
2c5ca93
Update serverless/pages/get-started.asciidoc
kosabogi Nov 19, 2024
4d4c7cd
Update serverless/pages/get-started.asciidoc
kosabogi Nov 19, 2024
dcedf12
Final fixes
kosabogi Nov 19, 2024
5dfa344
Update serverless/pages/connecting-to-es-endpoint.asciidoc
kosabogi Nov 19, 2024
36dd995
Update serverless/pages/get-started.asciidoc
kosabogi Nov 19, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added serverless/images/copy-connection-details.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added serverless/images/create-an-api-key.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion serverless/index-serverless-elasticsearch.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ include::./pages/pricing.asciidoc[leveloffset=+2]

include::./pages/get-started.asciidoc[leveloffset=+2]

include::./pages/create-new-api-key.asciidoc[leveloffset=+2]
include::./pages/connecting-to-es-endpoint.asciidoc[leveloffset=+2]

include::./pages/clients.asciidoc[leveloffset=+2]
include::./pages/clients-go-getting-started.asciidoc[leveloffset=+3]
Expand Down
79 changes: 79 additions & 0 deletions serverless/pages/connecting-to-es-endpoint.asciidoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
[[elasticsearch-connecting-to-es-serverless-endpoint]]
= Connecting to your Elasticsearch Serverless endpoint

[discrete]
[[elasticsearch-create-new-api-key]]
== Create a new API key

Create an API key, which will enable you to access the {es} API to ingest and search data.

. On the **Getting Started** page, scroll to **Add an API Key** and select **New**.
+
image::images/create-an-api-key.png[Create an API key.]
. In **Create API Key**, enter a name for your key and (optionally) set an expiration date.
. (Optional) Under **Control Security privileges**, you can set specific access permissions for this API key. By default, it has full access to all APIs.
. (Optional) The **Add metadata** section allows you to add custom key-value pairs to help identify and organize your API keys.
. Select **Create API Key** to finish.

After creation, you'll see your API key displayed as an encoded string.
Store this encoded API key securely. It is displayed only once and cannot be retrieved later.
You will use this encoded API key when sending API requests.

[NOTE]
====
You can't recover or retrieve a lost API key. Instead, you must delete the key and create a new one.
====

[discrete]
[[elasticsearch-get-started-copy-url]]
== Copy your {es} endpoint

Copy the URL of your {es} API endpoint.
You'll send all {es} API requests to this URL.

. On the **Getting Started** page, scroll to **Copy your connection details** section, and find the **Elasticsearch endpoint** field.
. Copy the URL for the Elasticsearch endpoint.

image::images/copy-connection-details.png[Copy your Elasticsearch endpoint.]

[discrete]
[[elasticsearch-get-started-test-connection]]
== Test connection

We'll use the `curl` command to test your connection and make additional API requests.
(See https://everything.curl.dev/install/index.html[Install curl] if you need to install this program.)

`curl` will need access to your Elasticsearch endpoint and `encoded` API key.
Within your terminal, assign these values to the `ES_URL` and `API_KEY` environment variables.

For example:

[source,bash]
----
export ES_URL="https://dda7de7f1d264286a8fc9741c7741690.es.us-east-1.aws.elastic.cloud:443"
export API_KEY="ZFZRbF9Jb0JDMEoxaVhoR2pSa3Q6dExwdmJSaldRTHFXWEp4TFFlR19Hdw=="
----

Then run the following command to test your connection:

[source,bash]
----
curl "${ES_URL}" \
-H "Authorization: ApiKey ${API_KEY}" \
-H "Content-Type: application/json"
----

You should receive a response similar to the following:

[source,json]
----
{
"name" : "serverless",
"cluster_name" : "dda7de7f1d264286a8fc9741c7741690",
"cluster_uuid" : "ws0IbTBUQfigmYAVMztkZQ",
"version" : { ... },
"tagline" : "You Know, for Search"
}
----

Now you're ready to ingest and search some sample documents.
19 changes: 0 additions & 19 deletions serverless/pages/create-new-api-key.asciidoc

This file was deleted.

180 changes: 30 additions & 150 deletions serverless/pages/get-started.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ Once your project is set up, you'll be directed to a page where you can create y
An index is where documents are stored and organized, making it possible to search and retrieve data.

. Enter a name for your index.
. Click *Create my index*. You can also create the index by clicking on *Code* to view and run code examples through the command line.
. Click *Create my index*. You can also create the index by clicking on *Code* to view and run code through the command line.
+
image::images/get-started-create-an-index.png[Create an index.]

Expand All @@ -49,170 +49,50 @@ image::images/get-started-create-an-index.png[Create an index.]
You won’t be able to view this API key again. If needed, refer to <<elasticsearch-create-new-api-key,Create a new API key>> to generate a new one.
====

[discrete]
[[elasticsearch-get-started-ingest-data]]
== Ingest data
The UI provides ready-to-use code examples for ingesting data via the REST API.
Choose your preferred tool for making these requests:

The UI provides ready-to-use code examples for ingesting data via the REST API. Choose your preferred tool for making these requests:
* Elastic Console in your project's UI
* Python
* JavaScript
* cURL
If you'd prefer to upload a file using the UI, refer to <<elasticsearch-ingest-data-file-upload>>.

In this section, we walk you through the ingest process using the Console.

. Click *Run in Console*.
. Run the first API call to create the index mapping.
+
[source,console]
----
PUT /search-test/_mapping
{
"properties": {
"vector": {
"type": "dense_vector",
"dims": 3
},
"text": {
"type": "text"
}
}
}
----

. Run the second API call to ingest documents.

[source,console]
----
POST /_bulk?pretty
{ "index": { "_index": "search-test" } }
{"vector":[2.542,5.807,9.735],"text":"Example text 1"}
{ "index": { "_index": "search-test" } }
{"vector":[5.879,8.179,9.932],"text":"Example text 2"}
{ "index": { "_index": "search-test" } }
{"vector":[6.534,7.155,3.236],"text":"Example text 3"}
----

[discrete]
[[elasticsearch-get-started-search-data]]
== Search data

To search, send a `POST` request to the `_search` endpoint, specifying the index to search.

Run the following command to search the `search-test` index for documents containing `Example` in the text field:

[source,bash]
----
POST /search-test/_search?pretty
{
"query": {
"match": {
"text": "Example"
}
}
}
----

This query will use the match query, which is designed to search for full-text fields.

You should receive a response that includes the documents matching your search term.
Here’s an example of what the response might look like:

[source,console]
----
{
"took": 6,
"timed_out": false,
"_shards": {
"total": 3,
"successful": 3,
"skipped": 0,
"failed": 0
},
"hits": {
"total": {
"value": 3,
"relation": "eq"
},
"max_score": 0.2876821,
"hits": [
{
"_index": "search-test",
"_id": "NJZmIJMBSZbIKcD1sOUO",
"_score": 0.2876821,
"_source": {
"vector": [
2.352,
4.133,
1.718
],
"text": "Example text 2"
}
},
{
"_index": "search-test",
"_id": "M5ZmIJMBSZbIKcD1sOUO",
"_score": 0.18232156,
"_source": {
"vector": [
6.407,
1.821,
0.404
],
"text": "Example text 1"
}
},
{
"_index": "search-test",
"_id": "NZZmIJMBSZbIKcD1sOUO",
"_score": 0.18232156,
"_source": {
"vector": [
4.959,
5.986,
3.873
],
"text": "Example text 3"
}
}
]
}
}
----

In this response:

- `hits`: This section contains the matching documents. Each document includes the `_source` field with the original vector and text fields.
- `_score`: This field indicates the relevance score of each document to the search query. A higher score means a closer match.

[discrete]
[[elasticsearch-get-started-continue-on-your-own]]
== Continue on your own

Congratulations!
You've set up an {es} project, and you've ingested and searched some sample data.
Now you're ready to continue on your own.

[discrete]
[[elasticsearch-get-started-explore]]
=== Explore

Want to explore the sample documents or your own data?

By creating a data view, you can explore data using several UI tools, such as Discover or Dashboards. Or, use {es} aggregations to explore your data using the API. Find more information in <<elasticsearch-explore-your-data>>.
== Ingest data

[discrete]
[[elasticsearch-get-started-build]]
=== Build
Elasticsearch provides several methods for ingesting data:

Ready to build your own solution?
* <<elasticsearch-ingest-data-through-api,{es} API>>
* <<elasticsearch-ingest-data-through-integrations-connector-client,Connector clients>>
* <<elasticsearch-ingest-data-file-upload,File Uploader>>
* <<elasticsearch-ingest-data-through-beats,{beats}>>
* <<elasticsearch-ingest-data-through-logstash,{ls}>>
* https://github.com/elastic/crawler[Elastic Open Web Crawler]

To learn more about sending and syncing data to {es}, or the search API and its query DSL, check <<elasticsearch-ingest-your-data>> and <<elasticsearch-http-apis>>.
For more information on data ingestion and synchronization,
see <<elasticsearch-ingest-your-data>>.
To learn about the search API and query DSL, refer to <<elasticsearch-http-apis>>.

////
/*
- <DocLink slug="/serverless/elasticsearch/search-your-data" />
- <DocLink slug="/serverless/elasticsearch/search-your-data-the-search-api" />
*/
////

[discrete]
[[elasticsearch-get-started-explore]]
== Explore

*Create a data view*: You can explore data using UI tools like Discover or Dashboards by creating a data view.
Or, you can use {es} aggregations to explore data through the API. Find more information in <<elasticsearch-explore-your-data>>.

*Try Playground*: You can test {es} queries and combine {es} data with LLMs for retrieval augmented generation (RAG) in the
<<elasticsearch-playground>>.

*Search your data*: You can perform search queries in {es} to filter by exact values,
conduct full-text searches, or use vector search. Learn more in <<elasticsearch-search-your-data>>.

*Use semantic search*: You can retrieve data based on intent and context using NLP and vector embeddings with
<<elasticsearch-reference-semantic-search>>.