(七):ElasticSearch客户端操作
ElasticSearch服务的客户端,有以下三种方式:
·elasticsearch-head插件
·elasticsearch提供的Restful接口直接访问
·elasticsearch提供的API进行访问
1、elasticsearch-head插件
启动插件后,访问 http://localhost:9100/ 地址,详情如下:
1.1、概览信息
概览信息可以查询到建立的索引。
1.2、索引
点击索引页,可以新建索引,同时可以查看建立的索引信息,包括该索引下的文档数。

1.3、浏览数据
浏览数据页,可以根据索引及类型查看数据,详情如下:

1.4、基本查询和复合查询
基本查询和复合查询在学习完 domain-specific language 领域特定语言,即DSL中会做详细介绍。
2、访问Restful接口
2.1、索引操作
2.1.1、创建索引 index
PUT /索引名
POST /索引名
1.1、创建映射及索引
请求体内容:
{
"mappings": {
"properties": {
"id": {
"type": "long",
"store": true
},
"title": {
"type": "text",
"store": true,
"analyzer":"standard"
},
"content": {
"type": "text",
"store": true,
"analyzer":"standard"
}
}
}
}
详情如下:

通过head插件查询,索引已经建成功。

1.2、先创建索引再创建映射 mapping
使用put方法创建一个索引,无任何请求信息,详情如下:

设置mapping信息,详情如下:
{
"article": {
"properties": {
"id":{
"type":"long",
"store":true
},
"title":{
"type":"text",
"store":true,
"analyzer":"standard"
},
"content":{
"type":"text",
"store":true,
"analyzer":"standard"
}
}
}
}
postman请求详情如下:

head插件查看如下:

2.1.2、查看索引
# 查看所有索引信息
GET /*
详情如下:

# 查看指定索引的索引信息
GET /索引名
详情如下:

2.1.3、更新索引
DELETE /索引名称
详情如下:

2.2、文档操作
2.2.1、post与put方式的区别
提交方式 |
描述 |
PUT |
提交的id如果不存在就是新增操作,如果存在就是更新操作,id不能为空 |
POST |
如果不提供id会自动生成一个id,如果id存在就更新,如果id不存在就新增 |
2.2.2、创建文档
PUT|POST /索引名称/类型名/编号
请求体内容:
{
"id":1,
"title":"ElasticSearch 是一个基于 Lucene 的搜索服务器",
"content":"它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。"
}
详情如下:

使用head查看结果:

返回字段含义:
字段 |
含义 |
_index |
索引名称 |
_type |
类型名称 |
_id |
记录id |
_version |
版本号 |
_seq_no |
并发控制字段,每次更新都会+1,用来实现乐观锁 |
_primary_term |
同上,主分片重新分配,如重启,就会发生变化 |
found |
是否找到结果标识 |
_source |
真正的数据内容 |
2.2.3、更新文档
使用 put方式 更新,详情如下:

2.2.4、查询文档
4.1、根据id查询

4.2、根据querystring查询
query_string的搜索方式,搜索之前对搜索的关键词分词。
{
"query": {
"query_string": {
"default_field": "title",
"query": "搜索服务器"
}
}
}
2.2.5、删除文档

3、Kibana的Dev Tools
Kibana的安装:(三):Kibana安装。
在Kibana的管理台中,可通过Dev Tools对数据进行检索、过滤等操作。

3.1、索引操作
# 创建索引
PUT /user
# 查询索引
GET /user
# 删除索引
DELETE /user
3.1.1、创建索引

3.2.2、查看索引
2.1、管理台查看
查看创建的索引,在Kibana管理台 Management -> StackManagement -> Index Management 中查看刚创建的索引。

2.2、命令查看

3.2.3、删除索引

再次查看索引,返回404,索引未找到,表示已经被删除。

3.2、文档操作
3.2.1、创建文档
# 创建文档,type = _doc
PUT /user/_doc/1
{
"name":"李四",
"age":28,
"city":"杭州"
}
# type = _doc
POST /user/_create/2
{
"name":"王五",
"age":26,
"city":"上海"
}
# type = userinfo
POST /user/userinfo/3
{
"name":"赵六",
"age":35,
"city":"北京"
}
详情如下:



7.x的版本的type默认为_doc,废弃了类型type,去掉type是为了提高ES处理数据的效率。
Elasticsearc基于Lucene开发的搜索引擎,在ES中不同type下名称相同的filed最终在Lucene中的处理方式是一样的。
两个不同type下的两个name,在ES中同一个索引下其实被认为是同一个filed,必须在两个不同的type中定义相同的filed映射。否则,不同type中的相同字段名称就会在处理中出现冲突的情况,导致Lucene处理效率下降。
3.2.2、查看文档
# 查看文档
GET /user/_doc/1
3.2.3、更新文档
# 更新文档
POST /user/_doc/1
{
"name":"李四",
"age":29,
"city":"杭州"
}
# 查看更新后的文档
GET /user/_doc/1


3.2.4、删除文档
# 删除文档
DELETE /user/_doc/1
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)