执照
安全
Elasticsearch 是一种分布式搜索和分析引擎、可扩展数据存储和矢量数据库,针对生产规模工作负载的速度和相关性进行了优化。 Elasticsearch 是 Elastic 开放堆栈平台的基础。在海量数据集上近乎实时地搜索、执行矢量搜索、与生成式 AI 应用程序集成等等。
Elasticsearch 支持的用例包括:
检索增强生成 (RAG)
矢量搜索
全文检索
日志
指标
应用程序性能监控(APM)
安全日志
...以及更多!
要了解有关 Elasticsearch 特性和功能的更多信息,请参阅我们的产品页面。
要访问有关机器学习创新和 Elastic 的最新 Lucene 贡献的信息,可以在搜索实验室中找到更多信息。
设置 Elasticsearch 的最简单方法是使用 Elastic Cloud 上的 Elasticsearch 服务创建托管部署。
如果您希望自己安装和管理 Elasticsearch,可以从 elastic.co/downloads/elasticsearch 下载最新版本。
警告 | 请勿将这些说明用于生产部署。 此设置仅用于本地开发和测试。 |
使用start-local
脚本在 Docker 中快速设置 Elasticsearch 和 Kibana 以进行本地开发或测试。
ℹ️ 有关start-local
设置的更多详细信息,请参阅 GitHub 上的 README。
如果您尚未安装 Docker,请下载并安装适用于您的操作系统的 Docker Desktop。
如果您使用的是 Microsoft Windows,请安装 Windows Subsystem for Linux (WSL)。
此设置附带一个月的试用许可证,其中包括所有 Elastic 功能。
试用期结束后,许可证将恢复为免费和开放 - 基本许可证。有关更多信息,请参阅弹性订阅。
start-local
要在本地设置 Elasticsearch 和 Kibana,请运行start-local
脚本:
卷曲-fsSL https://elastic.co/start-local |嘘
此脚本创建一个包含配置文件的elastic-start-local
文件夹,并使用 Docker 启动 Elasticsearch 和 Kibana。
运行脚本后,您可以在以下端点访问Elastic服务:
弹性搜索:http://localhost:9200
基巴纳:http://localhost:5601
该脚本为elastic
用户生成一个随机密码,该密码在安装结束时显示并存储在.env
文件中。
警告 | 此设置仅用于本地测试。 HTTPS 已禁用,Elasticsearch 使用基本身份验证。为了安全起见,Elasticsearch 和 Kibana 只能通过 |
生成 Elasticsearch 的 API 密钥并将其作为ES_LOCAL_API_KEY
存储在.env
文件中。使用此密钥通过编程语言客户端或 REST API 连接到 Elasticsearch。
从elastic-start-local
文件夹中,使用curl
检查与Elasticsearch的连接:
source .env curl $ES_LOCAL_URL -H "授权:ApiKey ${ES_LOCAL_API_KEY} "
您通过 REST API 向 Elasticsearch 发送数据和其他请求。您可以使用任何发送 HTTP 请求的客户端(例如 Elasticsearch 语言客户端和curl)与 Elasticsearch 交互。
以下是使用基本身份验证创建新 Elasticsearch 索引的示例 curl 命令:
curl -u elastic: $ELASTIC_PASSWORD -X PUT http://localhost:9200/my-new-index -H '内容类型:application/json '
要使用语言客户端连接到本地开发 Elasticsearch 集群,您可以使用elastic
用户名和在环境变量中设置的密码进行基本身份验证。
您将使用以下连接详细信息:
Elasticsearch 端点: http://localhost:9200
用户名: elastic
密码: $ELASTIC_PASSWORD
(您在环境变量中设置的值)
例如,要连接Python elasticsearch
客户端:
import os from elasticsearch import Elasticsearch用户名= 'elastic'密码= os . getenv ( 'ELASTIC_PASSWORD' ) # 你在环境变量中设置的值client = Elasticsearch ( "http://localhost:9200" , basic_auth = ( username , password ) ) print ( client . info ())
Kibana 的开发者控制台提供了一种简单的方法来实验和测试请求。要访问控制台,请打开 Kibana,然后转到Management > Dev Tools 。
添加数据
您可以通过 REST API 发送 JSON 对象(文档),将数据索引到 Elasticsearch 中。无论您有结构化或非结构化文本、数字数据还是地理空间数据,Elasticsearch 都会以支持快速搜索的方式对其进行有效存储和索引。
对于带有时间戳的数据(例如日志和指标),您通常将文档添加到由多个自动生成的支持索引组成的数据流中。
要将单个文档添加到索引,请提交针对该索引的 HTTP post 请求。
POST /customer/_doc/1 { "firstname": "Jennifer", "lastname": "Walters" }
如果customer
索引不存在,此请求将自动创建该索引,添加 ID 为 1 的新文档,并存储firstname
和lastname
字段并为其建立索引。
新文档可立即从集群中的任何节点获取。您可以使用指定其文档 ID 的 GET 请求来检索它:
获取/客户/_doc/1
要在一个请求中添加多个文档,请使用_bulk
API。批量数据必须是换行符分隔的 JSON (NDJSON)。每行必须以换行符 ( n
) 结尾,包括最后一行。
PUT customer/_bulk { "create": { } } { "firstname": "Monica","lastname":"Rambeau"} { "create": { } } { "firstname": "Carol","lastname": “丹弗斯”} { “创建”:{ } } { “名字”:“旺达”,“姓氏”:“马克西莫夫”} { “创建”:{ } } { “名字”:“詹妮弗”,“姓氏”: “武田”}
搜索
索引文档可近乎实时地搜索。以下搜索与customer
索引中名字为Jennifer的所有客户相匹配。
GET customer/_search { "query" : { "match" : { "firstname": "Jennifer" } } }
探索
您可以使用 Kibana 中的 Discover 以交互方式搜索和过滤数据。从那里,您可以开始创建可视化以及构建和共享仪表板。
首先,创建一个连接到一个或多个 Elasticsearch 索引、数据流或索引别名的数据视图。
转到管理 > 堆栈管理 > Kibana > 数据视图。
选择创建数据视图。
输入数据视图的名称以及与一个或多个索引匹配的模式,例如customer 。
选择将数据视图保存到 Kibana 。
要开始探索,请转至分析 > 发现。
要从早期版本的 Elasticsearch 升级,请参阅 Elasticsearch 升级文档。
Elasticsearch 使用 Gradle 作为其构建系统。
要为本地操作系统构建发行版并在完成后打印其输出位置,请运行:
./gradlew localDistro
要为另一个平台构建发行版,请运行相关命令:
./gradlew :distribution:archives:linux-tar:assemble ./gradlew :distribution:archives:darwin-tar:assemble ./gradlew :distribution:archives:windows-zip:assemble
要为所有支持的平台构建发行版,请运行:
./gradlew 汇编
分发版输出到distribution/archives
。
要运行测试套件,请参阅测试。
如需完整的 Elasticsearch 文档,请访问 elastic.co。
有关我们的文档流程的信息,请参阅文档自述文件。
elasticsearch-labs
存储库包含可执行的 Python 笔记本、示例应用程序和资源,用于测试 Elasticsearch 的矢量搜索、混合搜索和生成 AI 用例。
有关贡献指南,请参阅贡献。
要报告错误或请求功能,请创建 GitHub 问题。请确保其他人没有为同一主题创建问题。
需要使用 Elasticsearch 方面的帮助吗?访问 Elastic Forum 或 Slack。社区成员或 Elastic 工程师将很乐意为您提供帮助。