rag_retrievalJava

elasticsearch

Free and Open Source, Distributed, RESTful Search Engine

75.9KStars
25.8KForks

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:

... 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

==== 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:

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}"

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

// 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

项目信息

主要语言Java
开源协议Other
所有者elastic