elasticsearch
Free and Open Source, Distributed, RESTful Search Engine
Last Updated
2026年1月21日
= Elasticsearch
Elasticsearch is a distributed search and analytics engine, scalable data store and vector database optimized for speed and relevance on production-scale workloads. Elasticsearch is the foundation of Elastic's open Stack platform. Search in near real-time over massive datasets, perform vector searches, integrate with generative AI applications, and much more.
Use cases enabled by Elasticsearch include:
- https://www.elastic.co/search-labs/blog/articles/retrieval-augmented-generation-rag[Retrieval Augmented Generation (RAG)]
- https://www.elastic.co/search-labs/blog/categories/vector-search[Vector search]
- Full-text search
- Logs
- Metrics
- Application performance monitoring (APM)
- Security logs
... and more!
To learn more about Elasticsearch's features and capabilities, see our
https://www.elastic.co/products/elasticsearch[product page].
To access information on https://www.elastic.co/search-labs/blog/categories/ml-research[machine learning innovations] and the latest https://www.elastic.co/search-labs/blog/categories/lucene[Lucene contributions from Elastic], more information can be found in https://www.elastic.co/search-labs[Search Labs].
[[get-started]]
== Get started
The simplest way to set up Elasticsearch is to create a managed deployment with
https://www.elastic.co/cloud/as-a-service[Elasticsearch Service on Elastic
Cloud].
If you prefer to install and manage Elasticsearch yourself, you can download
the latest version from
https://www.elastic.co/downloads/elasticsearch[elastic.co/downloads/elasticsearch].
=== Run Elasticsearch locally
////
IMPORTANT: This content is replicated in the Elasticsearch repo. See run-elasticsearch-locally.asciidoc.
Ensure both files are in sync.
https://github.com/elastic/start-local is the source of truth.
////
[WARNING]
DO NOT USE THESE INSTRUCTIONS FOR PRODUCTION DEPLOYMENTS.
This setup is intended for local development and testing only.
Quickly set up Elasticsearch and Kibana in Docker for local development or testing, using the https://github.com/elastic/start-local?tab=readme-ov-file#-try-elasticsearch-and-kibana-locally[start-local script].
ℹ️ For more detailed information about the start-local setup, refer to the https://github.com/elastic/start-local[README on GitHub].
==== Prerequisites
- If you don't have Docker installed, https://www.docker.com/products/docker-desktop[download and install Docker Desktop] for your operating system.
- If you're using Microsoft Windows, then install https://learn.microsoft.com/en-us/windows/wsl/install[Windows Subsystem for Linux (WSL)].
==== Trial license
This setup comes with a one-month trial license that includes all Elastic features.
After the trial period, the license reverts to Free and open - Basic.
Refer to https://www.elastic.co/subscriptions[Elastic subscriptions] for more information.
==== Run start-local
To set up Elasticsearch and Kibana locally, run the start-local script:
[source,sh]
curl -fsSL https://elastic.co/start-local | sh
// NOTCONSOLE
This script creates an elastic-start-local folder containing configuration files and starts both Elasticsearch and Kibana using Docker.
After running the script, you can access Elastic services at the following endpoints:
- Elasticsearch: http://localhost:9200
- Kibana: http://localhost:5601
The script generates a random password for the elastic user, which is displayed at the end of the installation and stored in the .env file.
[CAUTION]
This setup is for local testing only. HTTPS is disabled, and Basic authentication is used for Elasticsearch. For security, Elasticsearch and Kibana are accessible only through localhost.
==== API access
An API key for Elasticsearch is generated and stored in the .env file as ES_LOCAL_API_KEY.
Use this key to connect to Elasticsearch with a https://www.elastic.co/guide/en/elasticsearch/client/index.html[programming language client] or the https://www.elastic.co/guide/en/elasticsearch/reference/current/rest-apis.html[REST API].
From the elastic-start-local folder, check the connection to Elasticsearch using curl:
[source,sh]
source .env
curl $ES_LOCAL_URL -H "Authorization: ApiKey ${ES_LOCAL_API_KEY}"
curl $ES_LOCAL_URL -H "Authorization: ApiKey ${ES_LOCAL_API_KEY}"
To use the password for the elastic user, set and export the ES_LOCAL_PASSWORD environment variable. For example:
[source,sh]
source .env
export ES_LOCAL_PASSWORD
export ES_LOCAL_PASSWORD
// NOTCONSOLE
=== Send requests to Elasticsearch
You send data and other requests to Elasticsearch through REST APIs.
You can interact with Elasticsearch using any client that sends HTTP requests,
such as the https://www.elastic.co/guide/en/elasticsearch/client/index.html[Elasticsearch
language clients] and https://curl.se[curl].
==== Using curl
Here's an example curl command to create a new Elasticsearch index, using basic auth:
[source,sh]
curl -u elastic:$ES_LOCAL_PASSWORD
-X PUT
http://localhost:9200/my-new-index
-H 'Conte