elasticsearch

elasticsearch

高性能分布式搜索和分析引擎 支持海量数据实时处理

Elasticsearch是一款开源的分布式搜索和分析引擎,同时也是可扩展的数据存储和向量数据库。它专为生产环境优化,提供卓越的速度和相关性。作为Elastic Stack的核心组件,Elasticsearch支持近实时处理海量数据、执行向量搜索以及与生成式AI应用集成。它广泛应用于全文搜索、日志分析、指标监控、应用性能管理和安全日志等领域,为组织提供强大的数据处理和分析能力。

Elasticsearch搜索引擎分析引擎数据存储向量数据库Github开源项目

= Elasticsearch

Elasticsearch 是一个分布式搜索和分析引擎、可扩展数据存储和向量数据库,针对生产规模工作负载的速度和相关性进行了优化。Elasticsearch 是 Elastic 开放堆栈平台的基础。它可以在海量数据集上进行近实时搜索、执行向量搜索、与生成式 AI 应用集成,以及更多功能。

Elasticsearch 支持的用例包括:

  • 检索增强生成 (RAG)
  • 向量搜索
  • 全文搜索
  • 日志
  • 指标
  • 应用性能监控 (APM)
  • 安全日志

...还有更多!

要了解 Elasticsearch 的特性和功能,请访问我们的产品页面。

要获取机器学习创新和 Elastic 最新的 Lucene 贡献信息,可以在 Search Labs 中找到更多信息。

== 入门

设置 Elasticsearch 最简单的方法是在 Elastic Cloud 上创建一个托管部署。

如果您更喜欢自己安装和管理 Elasticsearch,可以从 elastic.co/downloads/elasticsearch 下载最新版本。

=== 在本地运行 Elasticsearch

[警告]

请勿将这些说明用于生产部署。

此设置仅适用于本地开发和测试。

以下命令可帮助您快速在 Docker 中启动一个单节点 Elasticsearch 集群和 Kibana。此设置用于本地开发或测试。

==== 先决条件

如果您尚未安装 Docker,请为您的操作系统下载并安装 Docker Desktop。

==== 设置环境变量

配置以下环境变量。

[source,sh]

export ELASTIC_PASSWORD="<ES_密码>" # "elastic" 用户的密码 export KIBANA_PASSWORD="<KIB_密码>" # Kibana 内部使用,必须至少 6 个字符

==== 创建 Docker 网络

要同时运行 Elasticsearch 和 Kibana,您需要创建一个 Docker 网络:

[source,sh]

docker network create elastic-net

==== 运行 Elasticsearch

使用以下命令启动 Elasticsearch 容器:

[source,sh]

docker run -p 127.0.0.1:9200:9200 -d --name elasticsearch --network elastic-net
-e ELASTIC_PASSWORD=$ELASTIC_PASSWORD
-e "discovery.type=single-node"
-e "xpack.security.http.ssl.enabled=false"
-e "xpack.license.self_generated.type=trial"
docker.elastic.co/elasticsearch/elasticsearch:{version}

==== 运行 Kibana (可选)

要运行 Kibana,您必须首先在 Elasticsearch 容器中设置 kibana_system 密码。

[source,sh]

在 ES 容器中配置 Kibana 密码

curl -u elastic:$ELASTIC_PASSWORD
-X POST
http://localhost:9200/_security/user/kibana_system/_password
-d '{"password":"'"$KIBANA_PASSWORD"'"}'
-H 'Content-Type: application/json'

使用以下命令启动 Kibana 容器:

[source,sh]

docker run -p 127.0.0.1:5601:5601 -d --name kibana --network elastic-net
-e ELASTICSEARCH_URL=http://elasticsearch:9200
-e ELASTICSEARCH_HOSTS=http://elasticsearch:9200
-e ELASTICSEARCH_USERNAME=kibana_system
-e ELASTICSEARCH_PASSWORD=$KIBANA_PASSWORD
-e "xpack.security.enabled=false"
-e "xpack.license.self_generated.type=trial"
docker.elastic.co/kibana/kibana:{version}

.试用许可 [%collapsible]

服务启动时使用试用许可。试用许可可在 30 天的试用期内启用 Elasticsearch 的所有功能。试用期过后,许可将降级为基本许可,基本许可是永久免费的。如果您更愿意跳过试用并使用基本许可,请将 xpack.license.self_generated.type 变量的值设置为 basic。有关不同许可之间的详细功能比较,请参阅我们的订阅页面。

==== 向 Elasticsearch 发送请求

您可以通过 REST API 向 Elasticsearch 发送数据和其他请求。 您可以使用任何能发送 HTTP 请求的客户端与 Elasticsearch 交互, 例如 Elasticsearch 语言客户端和 curl。

===== 使用 curl

以下是使用基本身份验证创建新 Elasticsearch 索引的 curl 命令示例:

[source,sh]

curl -u elastic:$ELASTIC_PASSWORD
-X PUT
http://localhost:9200/my-new-index
-H 'Content-Type: application/json'

===== 使用语言客户端

要使用语言客户端连接到本地开发 Elasticsearch 集群,您可以使用 elastic 用户名和在环境变量中设置的密码进行基本身份验证。

您将使用以下连接详情:

  • Elasticsearch 端点: http://localhost:9200
  • 用户名: elastic
  • 密码: $ELASTIC_PASSWORD (您在环境变量中设置的值)

例如,使用 Python elasticsearch 客户端连接:

[source,python]

import os from elasticsearch import Elasticsearch

username = 'elastic' password = os.getenv('ELASTIC_PASSWORD') # 您在环境变量中设置的值

client = Elasticsearch( "http://localhost:9200", basic_auth=(username, password) )

print(client.info())

===== 使用开发工具控制台

Kibana 的开发者控制台提供了一种简单的方法来试验和测试请求。 要访问控制台,打开 Kibana,然后转到管理 > 开发工具

添加数据

您可以通过 REST API 发送 JSON 对象(文档)将数据索引到 Elasticsearch 中。 无论您是结构化或非结构化文本、数值数据还是地理空间数据, Elasticsearch 都能高效地存储和索引它,以支持快速搜索。

对于日志和指标等带时间戳的数据,您通常会将文档添加到由多个自动生成的后备索引组成的数据流中。

要将单个文档添加到索引中,请提交一个针对该索引的 HTTP POST 请求。


POST /customer/_doc/1 { "firstname": "Jennifer", "lastname": "Walters" }

如果 customer 索引不存在,此请求会自动创建它, 添加一个 ID 为 1 的新文档,并 存储和索引 firstnamelastname 字段。

新文档可立即从集群中的任何节点访问。 您可以使用指定其文档 ID 的 GET 请求来检索它:

GET /customer/_doc/1

要在一个请求中添加多个文档,请使用_bulk API。 批量数据必须是换行分隔的JSON(NDJSON)。 每行必须以换行符(\n)结束,包括最后一行。


PUT customer/_bulk { "create": { } } { "firstname": "Monica","lastname":"Rambeau"} { "create": { } } { "firstname": "Carol","lastname":"Danvers"} { "create": { } } { "firstname": "Wanda","lastname":"Maximoff"} { "create": { } } { "firstname": "Jennifer","lastname":"Takeda"}

搜索

索引的文档几乎可以实时用于搜索。 以下搜索匹配customer索引中所有名字为_Jennifer_的客户。


GET customer/_search { "query" : { "match" : { "firstname": "Jennifer" }
} }

探索

你可以使用Kibana中的Discover功能交互式地搜索和筛选你的数据。 从那里,你可以开始创建可视化图表并构建和共享仪表板。

要开始,请创建一个连接到一个或多个Elasticsearch索引、数据流或索引别名的_数据视图_。

. 转到管理 > 堆栈管理 > Kibana > 数据视图。 . 选择创建数据视图。 . 输入数据视图的名称和匹配一个或多个索引的模式,例如_customer_。 . 选择保存数据视图到Kibana

要开始探索,请转到分析 > Discover

[[upgrade]] == 升级

要从Elasticsearch的早期版本升级,请参阅 https://www.elastic.co/guide/en/elasticsearch/reference/current/setup-upgrade.html[Elasticsearch升级文档]。

[[build-source]] == 从源代码构建

Elasticsearch使用https://gradle.org[Gradle]作为其构建系统。

要为你的本地操作系统构建一个分发版并在完成时打印其输出位置,运行:

./gradlew localDistro

要为其他平台构建分发版,运行相关命令:

./gradlew :distribution:archives:linux-tar:assemble ./gradlew :distribution:archives:darwin-tar:assemble ./gradlew :distribution:archives:windows-zip:assemble

要为所有支持的平台构建分发版,运行:

./gradlew assemble

分发版输出到distribution/archives

要运行测试套件,请参阅xref:TESTING.asciidoc[TESTING]。

[[docs]] == 文档

完整的Elasticsearch文档请访问 https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html[elastic.co]。

有关我们的文档流程的信息,请参阅 xref:docs/README.asciidoc[docs README]。

[[examples]] == 示例和指南

https://github.com/elastic/elasticsearch-labs[`elasticsearch-labs`]仓库包含可执行的Python笔记本、示例应用和资源,用于测试Elasticsearch的向量搜索、混合搜索和生成式AI用例。

[[contribute]] == 贡献

有关贡献指南,请参阅xref:CONTRIBUTING.md[CONTRIBUTING]。

[[questions]] == 问题?问题?建议?

编辑推荐精选

扣子-AI办公

扣子-AI办公

职场AI,就用扣子

AI办公助手,复杂任务高效处理。办公效率低?扣子空间AI助手支持播客生成、PPT制作、网页开发及报告写作,覆盖科研、商业、舆情等领域的专家Agent 7x24小时响应,生活工作无缝切换,提升50%效率!

堆友

堆友

多风格AI绘画神器

堆友平台由阿里巴巴设计团队创建,作为一款AI驱动的设计工具,专为设计师提供一站式增长服务。功能覆盖海量3D素材、AI绘画、实时渲染以及专业抠图,显著提升设计品质和效率。平台不仅提供工具,还是一个促进创意交流和个人发展的空间,界面友好,适合所有级别的设计师和创意工作者。

图像生成AI工具AI反应堆AI工具箱AI绘画GOAI艺术字堆友相机AI图像热门
码上飞

码上飞

零代码AI应用开发平台

零代码AI应用开发平台,用户只需一句话简单描述需求,AI能自动生成小程序、APP或H5网页应用,无需编写代码。

Vora

Vora

免费创建高清无水印Sora视频

Vora是一个免费创建高清无水印Sora视频的AI工具

Refly.AI

Refly.AI

最适合小白的AI自动化工作流平台

无需编码,轻松生成可复用、可变现的AI自动化工作流

酷表ChatExcel

酷表ChatExcel

大模型驱动的Excel数据处理工具

基于大模型交互的表格处理系统,允许用户通过对话方式完成数据整理和可视化分析。系统采用机器学习算法解析用户指令,自动执行排序、公式计算和数据透视等操作,支持多种文件格式导入导出。数据处理响应速度保持在0.8秒以内,支持超过100万行数据的即时分析。

AI工具酷表ChatExcelAI智能客服AI营销产品使用教程
TRAE编程

TRAE编程

AI辅助编程,代码自动修复

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
AIWritePaper论文写作

AIWritePaper论文写作

AI论文写作指导平台

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

AI辅助写作AI工具AI论文工具论文写作智能生成大纲数据安全AI助手热门
博思AIPPT

博思AIPPT

AI一键生成PPT,就用博思AIPPT!

博思AIPPT,新一代的AI生成PPT平台,支持智能生成PPT、AI美化PPT、文本&链接生成PPT、导入Word/PDF/Markdown文档生成PPT等,内置海量精美PPT模板,涵盖商务、教育、科技等不同风格,同时针对每个页面提供多种版式,一键自适应切换,完美适配各种办公场景。

AI办公办公工具AI工具博思AIPPTAI生成PPT智能排版海量精品模板AI创作热门
潮际好麦

潮际好麦

AI赋能电商视觉革命,一站式智能商拍平台

潮际好麦深耕服装行业,是国内AI试衣效果最好的软件。使用先进AIGC能力为电商卖家批量提供优质的、低成本的商拍图。合作品牌有Shein、Lazada、安踏、百丽等65个国内外头部品牌,以及国内10万+淘宝、天猫、京东等主流平台的品牌商家,为卖家节省将近85%的出图成本,提升约3倍出图效率,让品牌能够快速上架。

下拉加载更多