当前位置: 首页 > news >正文

Elasticsearch全解析:功能、上手、使用及开发指南

Elasticsearch是什么?

Elasticsearch是一个分布式搜索和分析引擎,也是可扩展的数据存储和向量数据库,针对生产规模的工作负载在速度和相关性方面进行了优化。它是Elastic开放堆栈平台的基础。借助Elasticsearch,可以对海量数据集进行近实时搜索、执行向量搜索、与生成式AI应用集成等等。其应用场景包括:检索增强生成(RAG)、向量搜索、全文搜索、日志分析、指标监控、应用性能监控(APM)、安全日志分析等。

若想了解Elasticsearch的更多特性和功能,可访问产品页面。若要获取有关机器学习创新以及Elastic对最新Lucene贡献的信息,可在Search Labs中找到更多内容。

如何快速上手Elasticsearch?

设置Elasticsearch最简单的方法是在Elastic Cloud上使用Elasticsearch Service创建托管部署。如果想自行安装和管理Elasticsearch,可以从elastic.co/downloads/elasticsearch下载最新版本。

本地运行Elasticsearch要注意什么?

注意:请勿将这些说明用于生产部署,此设置仅用于本地开发和测试。

使用 `start-local` 脚本可以在Docker中快速为本地开发或测试设置Elasticsearch和Kibana。

前提条件:如果尚未安装Docker,需为操作系统下载并安装Docker Desktop。如果使用的是Microsoft Windows,则需要安装适用于Linux的Windows子系统(WSL)。

试用许可证:此设置附带一个为期一个月的试用许可证,包含Elastic的所有功能。试用期满后,许可证将恢复为免费开源的Basic版本。更多信息请参考Elastic订阅计划。

如何运行 `start-local`?

要在本地设置Elasticsearch和Kibana,需运行 `start-local` 脚本:

curl -fsSL https://elastic.co/start-local | sh

该脚本会创建一个 `elastic-start-local` 文件夹,其中包含配置文件,并使用Docker启动Elasticsearch和Kibana。运行脚本后,可以通过以下端点访问Elastic服务:

Elasticsearch: http://localhost:9200

Kibana: http://localhost:5601

脚本会为 `elastic` 用户生成一个随机密码,该密码会在安装结束时显示,并存储在 `.env` 文件中。

注意:此设置仅用于本地测试,HTTPS已禁用,Elasticsearch使用基本身份验证。出于安全考虑,Elasticsearch和Kibana仅可通过本地主机访问。

怎样进行API访问?

Elasticsearch的API密钥会生成并存储在 `.env` 文件中,名为 `ES_LOCAL_API_KEY`。可以使用此密钥通过编程语言客户端或REST API连接到Elasticsearch。在 `elastic-start-local` 文件夹中,使用 `curl` 检查与Elasticsearch的连接:

source .env

curl $ES_LOCAL_URL -H "Authorization: ApiKey ${ES_LOCAL_API_KEY}"

若要使用 `elastic` 用户的密码,需设置并导出 `ES_LOCAL_PASSWORD` 环境变量,例如:

source .env

export ES_LOCAL_PASSWORD

如何向Elasticsearch发送请求?

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

如何使用 `curl` 发送请求?

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

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

如何使用语言客户端连接?

若要使用语言客户端连接到本地开发的Elasticsearch集群,可以使用 `elastic` 用户名和存储在 `ES_LOCAL_PASSWORD` 环境变量中的密码进行基本身份验证。连接信息如下:

Elasticsearch端点: http://localhost:9200

用户名: elastic

密码: $ES_LOCAL_PASSWORD(在环境变量中设置的值)

例如,使用Python的 `elasticsearch` 客户端进行连接:

import os

from elasticsearch import Elasticsearch

username = 'elastic'

password = os.getenv('ES_LOCAL_PASSWORD') # 在环境变量中设置的值

client = Elasticsearch(

"http://localhost:9200",

basic_auth=(username, password)

)

print(client.info())

如何使用开发工具控制台?

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

怎样添加数据到Elasticsearch?

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

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

如何添加单个文档?

要向索引中添加单个文档,可提交一个针对该索引的HTTP POST请求:

POST /customer/_doc/1

{

"firstname": "Jennifer",

"lastname": "Walters"

}

此请求会在 `customer` 索引不存在时自动创建该索引,添加一个ID为1的新文档,并存储和索引 `firstname` 和 `lastname` 字段。新文档可立即从集群中的任何节点检索,可以使用指定文档ID的GET请求来获取它:

GET /customer/_doc/1

如何添加多个文档?

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

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中的“发现”功能来交互式地搜索和过滤数据。从这里,可以开始创建可视化图表、构建和共享仪表盘。

要开始使用,需创建一个连接到一个或多个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

发行版将输出到 `distribution/archives` 目录。要运行测试套件,请参阅 `TESTING`。

在哪里查看文档?

完整的Elasticsearch文档请访问elastic.co。有关文档流程的信息,请参阅文档的README。

有哪些示例和指南?

`elasticsearch-labs` 仓库包含可执行的Python笔记本、示例应用程序以及用于测试Elasticsearch在向量搜索、混合搜索和生成式AI用例的资源。

如何进行贡献?

有关贡献指南,请参阅 `CONTRIBUTING`。

怎样反馈与获取支持?

如果发现了bug或有功能请求,请在GitHub上创建一个Issue。请确保没有其他人已经为同一主题创建了Issue。如果在使用Elasticsearch时需要帮助,可以在Elastic论坛或Slack上寻求帮助,社区成员或Elastic工程师将很乐意协助。

http://www.jsqmd.com/news/1127202/

相关文章:

  • BSCCompiler调试技巧:使用GDB调试编译器内部机制的实战指南
  • 计算机Java毕设实战-农家乐民宿客房预订与餐饮消费管理系统的设计与实现 智慧乡村山庄休闲服务管理平台【完整源码+LW+部署说明+演示视频,全bao一条龙等】
  • 中小企业轻量化一体化安全防护体系构建 —— 基于 Microsoft 365 Business Premium Defender 与 Purview 套件的落地研究
  • N_m3u8DL-RE:跨平台流媒体下载工具
  • Codex实战指南:从零掌握AI编程助手,提升开发效率
  • 傻瓜相机复兴,神牛 C100 透明屏相机仅售 199 元,能否脱颖而出?
  • 【2026最新】Dev C++ 6.5下载保姆级安装图文教程(全网最详细)【附安装包+C++编译器】
  • 【编程语言】深度梳理C/C++、Java、Python、Go、Rust的区别
  • 链接生成同款视频,2026年爆款视频复刻工作流,5款对比横评
  • Windows系统文件c_GSM7.DLL丢失找不到问题解决
  • Encore运行时嵌入Redis服务器:本地开发与生产环境行为一致的秘诀
  • 小龙虾技能-12-gog-ecosystem-02_GogPluginDev_插件开发
  • Ceph性能优化开发技巧:openeuler/ceph_dev中存储性能调优实战
  • 开发独立游戏的心态
  • 利用es2024新特性,图片压缩及上传
  • Windows平台Nmap从入门到实战:网络扫描与安全审计指南
  • 05_子代理
  • 2026图片去除背景工具全解:免费在线、电脑软件、手机,APP,实操指南
  • 2026年干细胞机构观察:四家企业技术布局与服务边界梳理
  • 01_CLAUDE.md
  • 2026年CSDN年度技术趋势预测:AI、云原生与开发者工具的未来
  • 2026去水印不破坏原图的方法:电脑手机在线无痕去水印工具教程
  • Navicat密码找回:3分钟解密本地加密连接配置
  • OpenCV 4.8 图像处理实战:用代码复现3种经典视觉错觉(附对比图)
  • 股市学习心得-股市投资的理解
  • YOLO部署血泪史:PyTorch转ONNX/TensorRT/NCNN,我踩过的20个坑全在这了
  • 2026视频转文字提取全操作指南:免费工具、在线网站、手机电脑端完整教程
  • 2026图片去水印方法:手机电脑免费工具与在线网站、PS教程
  • DDR4 硬件设计实战:基于MT41J256M8的PCB布局与信号完整性分析
  • 易信easyMarkets观察:服务响应、风控提示和使用秩序的综合参考