本教程指导初次接触阿里云Elasticsearch(ES)的开发者,在约45分钟(含约20分钟的实例创建等待时间)内完成从实例创建到数据检索的完整学习流程。
学习内容
创建并配置一个ES实例
通过Kibana的开发工具(Dev Tools)进行数据建模。
Kibana是ES的核心组件之一,能够让用户通过直观的图形化方式探索、分析和展示存储在 ES 中的数据。为方便用户使用,Kibana已内置在ES控制台,无需手动安装。
插入样本数据并执行多种检索操作。
完成本教程后,可掌握ES最基础的索引创建、数据读写和搜索能力。
ES版本与成本说明
正式操作前,需了解以下测试过程中涉及的关键信息:
ES类型和版本:向量增强版 8.17.0。
该版本将 AI 搜索链路中的核心算法服务组件化,包含文档解析、切片、文本向量化、查询分析、召回、排序以及 LLM 模型,支持语义搜索,助力企业快速构建 RAG 和多模态搜索能力。
成本预估:本教程全程采用按量付费模式。若严格按照推荐规格和时长操作,预计总花费在20元以内。测试完成后,请立即释放实例,以避免产生不必要的费用。
前提条件
注册并登录阿里云账号:确保账号拥有创建和管理Elasticsearch、VPC等资源的权限。
创建专有网络VPC和虚拟交换机vSwitch,记录VPC和vSwitch所在的地域和可用区。后续创建ES实例时必须选择相同的地域和可用区,否则无法关联。
操作步骤
步骤一:创建集群(约20分钟)
进入实例创建页面创建实例,关键参数配置如下,其他参数默认即可。
参数
说明
付费类型
按量付费,可随时释放。
地域与可用区
地域:选择已创建的VPC和vSwitch所在地域。
可用区:测试需求下,为减少实例创建等待时间,选择单可用区。应用生产环境时,可升级为多可用区。
本示例为华东1(杭州)/ 可用区I。
网络
选择已创建的VPC和vSwitch。
ES类型和版本
向量增强版8.17.0,本教程基于此版本。
数据节点规格
CPU类型:Intel 2核4G。
数据节点存储类型及数量:SSD云盘、单节点存储空间20GiB。
数据节点数量:2。
数据节点是存储索引数据的节点,主要对文档进行增删改查、聚合等操作。
Kibana节点
2核4G
实例名称
ES_test
密码
自定义,后续用于登录Kibana进行索引构建与数据探索。
单击立即购买,等待约20分钟直至实例状态变为正常即可进入下一步操作。
步骤二:配置并登录Kibana
Kibana公网访问地址默认开启,出于安全考虑,公网访问默认禁止所有IP,需要将待访问设备的IP地址加入白名单才能访问。
访问鉴权采用双重验证:首先需登录您的阿里云账号,然后使用 ES 实例的访问信息(用户名固定为 elastic
及其对应密码)进行二次登录验证。
在左侧导航栏单击可视化控制,在Kibana区域进入修改配置。
在访问配置页面,修改Kibana公网访问白名单。
获取待访问设备IP
您可以参照以下场景,获取待访问设备的IP地址。
场景
需获取的IP地址
获取方式
在本地设备中通过公网地址访问Kibana。
本地设备公网IP。
说明如果您的本地设备处在家庭网络或公司局域网中,需要添加局域网的公网出口IP地址。
通过
curl ipinfo.io/ip
查询本地设备公网IP。在ECS实例中通过公网地址访问Kibana。
当ECS与ES在不同专有网络中时,可通过ECS公网地址访问Kibana,此时需获取ECS的公网IP并添加到ES公网白名单中。
登录ECS控制台,在实例列表查看实例的公网IP地址。
添加公网白名单
获取待访问设备IP并将其添加至公网白名单中。
单击default分组右侧的配置 ,在弹出的对话框中添加IP白名单。
配置类别
格式和示例值
重要注意事项
IPv4地址格式
单个IP:
192.168.0.1
网段:
192.168.0.0/24
,建议将零散的IP合并为IP段
单个集群最多可配置300个IP或者IP网段,多个IP或者IP网段之间用英文逗号隔开,且逗号前后不能有空格。
公网默认地址:
127.0.0.1
,表示禁止所有IPv4地址访问。0.0.0.0/0
:允许所有IPv4访问。重要强烈建议不要配置
0.0.0.0/0
,存在高危风险。部分集群和地域不支持
0.0.0.0/0
,请以界面或者报错提示为准。
IPv6地址格式
(仅杭州地域支持)
单个IP:
2401:XXXX:1000:24::5
网段:
2401:XXXX:1000::/48
单个集群最多可配置300个IP或者IP网段,多个IP或者IP网段之间用英文逗号隔开,且逗号前后不能有空格。
::1
:禁止所有IPv6地址访问::/0
:允许所有IPv6访问重要强烈建议不要配置
::/0
,存在高危风险。部分集群版本不支持
::/0
,请以控制台界面或者报错提示为准。
配置完成后,单击确认。
单击公网入口,在Kibana登录页面,输入用户名和密码,成功登录即可进入Kibana控制台进行ES数据探索。
用户名:固定为elastic。
密码:创建ES集群时设置的密码,如遗忘可重置密码。
进入开发工具控制台,执行
GET /
查询集群信息。结果验证:右侧窗口返回包含版本号、集群名称等信息的JSON对象,则表示连接正常。
步骤三:创建索引
在Kibana的开发工具中执行Restful API为理财产品数据创建索引(Mapping)product_info
。
PUT /product_info
{
"settings": {
"number_of_shards": 5,
"number_of_replicas": 1
},
"mappings": {
"properties": {
"productName": {
"type": "text",
"analyzer": "ik_smart"
},
"annual_rate":{
"type":"keyword"
},
"describe": {
"type": "text",
"analyzer": "ik_smart"
}
}
}
}
核心参数说明:
settings:定义索引分片配置,如定义5个主分片,每个主分片1个副本。
mappings:定义索引字段。如定义索引文件中有productName
、annual_rate
、describe
3个字段。text
类型字段支持分词和模糊搜索,keyword
类型字段用于精确值匹配,更多字段类型请参见Field data types。
结果验证:返回结果含"acknowledged": true
和"shards_acknowledged": true
表示索引创建成功。
步骤四:插入数据
执行以下代码批量插入测试数据:
POST /product_info/_bulk
{"index":{}}
{"productName":"理财产品A","annual_rate":"3.2200%","describe":"180天定期理财,最低20000起投,收益稳定,可以自助选择消息推送"}
{"index":{}}
{"productName":"理财产品B","annual_rate":"3.1100%","describe":"90天定投产品,最低10000起投,每天收益到账消息推送"}
{"index":{}}
{"productName":"理财产品C","annual_rate":"3.3500%","describe":"270天定投产品,最低40000起投,每天收益立即到账消息推送"}
{"index":{}}
{"productName":"理财产品D","annual_rate":"3.1200%","describe":"90天定投产品,最低12000起投,每天收益到账消息推送"}
{"index":{}}
{"productName":"理财产品E","annual_rate":"3.0100%","describe":"30天定投产品推荐,最低8000起投,每天收益会消息推送"}
{"index":{}}
{"productName":"理财产品F","annual_rate":"2.7500%","describe":"热门短期产品,3天短期,无须任何手续费用,最低500起投,通过短信提示获取收益消息"}
结果验证:返回结果含"errors": false
表示数据插入成功。
步骤五:检索数据
全文检索(模糊匹配)
查询describe
包含“每天收益到账”的理财产品:
GET /product_info/_search
{
"query": {
"match": {
"describe": "每天收益到账消息推送"
}
}
}
结果验证:返回结果按相关性评分排序,评分越高的结果越靠前。
按条件检索(精确匹配)
查询annual_rate
(年化利率)在3.00%~3.13%之间的理财产品:
GET /product_info/_search
{
"query": {
"range": {
"annual_rate": {
"gte": "3.0000%",
"lte": "3.1300%"
}
}
}
}
结果验证:精确匹配数值范围,返回符合条件的结果,更多查询条件的使用请参见QueryDSL。
清理资源与后续学习
删除数据并释放ES实例
执行如下代码,删除本文创建的测试索引。
DELETE /product_info
返回结果如下:
返回Elasticsearch控制台的实例列表。
在实例列表待释放实例右侧的操作列中,单击
,选择无需等待,立即清除,单击确认释放实例。重要释放实例会永久删除该实例及其包含的所有数据,此操作不可逆,需谨慎操作。
后续学习路径
如需深入学习ES,可从以下方向探索: