
一、管理文档的API
1.1 文档的创建
1.1 创建文档时不指定文档ID
1、填写POST请求http://192.168.1.121:9200/es1-num/_doc,创建文档es1-num(不指定ID)
{
"name": "李文轩",
"hobby": ["吃鸡","丝袜","rap"]
}
![图片[2]-Elasticsearch文档与Mapping实战:CRUD、自定义类型与字段设计-AI运维探索者](https://bucketbucket1.oss-cn-beijing.aliyuncs.com/imag/image67.png)
2、打开ES Head扩展程序查看文档具体信息
![图片[3]-Elasticsearch文档与Mapping实战:CRUD、自定义类型与字段设计-AI运维探索者](https://bucketbucket1.oss-cn-beijing.aliyuncs.com/imag/image68.png)
1.1 创建文档时指定文档ID
1、填写POST请求http://192.168.1.121:9200/es1-num/_doc/1001,创建文档es1-num(指定ID)
{
"name": "彭斌北京分斌",
"hobby": [
"浏览网站",
"小电影",
"熬夜"
]
}
2、打开ES Head扩展程序查看文档具体信息
![图片[4]-Elasticsearch文档与Mapping实战:CRUD、自定义类型与字段设计-AI运维探索者](https://bucketbucket1.oss-cn-beijing.aliyuncs.com/imag/image69.png)
1.2 文档的修改
1.2 全量更新
1、填写POST请求http://192.168.1.121:9200/es1-num/_doc/PxHp8YwBHiJ8xufDjuVI,全量更新(所见即所得)
{
"name": "李文轩2023"
}
![图片[5]-Elasticsearch文档与Mapping实战:CRUD、自定义类型与字段设计-AI运维探索者](https://bucketbucket1.oss-cn-beijing.aliyuncs.com/imag/image70.png)
2、打开ES Head扩展程序查看文档具体信息,观察到只剩name字段
![图片[6]-Elasticsearch文档与Mapping实战:CRUD、自定义类型与字段设计-AI运维探索者](https://bucketbucket1.oss-cn-beijing.aliyuncs.com/imag/image71.png)
1.2 局部更新
1、填写POST请求http://192.168.1.121:9200/es1-num/_doc/1001/_update,局部更新文档
{
"doc": {
"age": 20,
"hobby": [
"抽烟",
"喝酒",
"烫头"
]
}
}
![图片[7]-Elasticsearch文档与Mapping实战:CRUD、自定义类型与字段设计-AI运维探索者](https://bucketbucket1.oss-cn-beijing.aliyuncs.com/imag/image72.png)
2、打开ES Head扩展程序查看文档具体信息
![图片[8]-Elasticsearch文档与Mapping实战:CRUD、自定义类型与字段设计-AI运维探索者](https://bucketbucket1.oss-cn-beijing.aliyuncs.com/imag/image73.png)
1.3 文档的查看
1、填写GET请求http://192.168.1.121:9200/es1-num/_search,查看文档
![图片[9]-Elasticsearch文档与Mapping实战:CRUD、自定义类型与字段设计-AI运维探索者](https://bucketbucket1.oss-cn-beijing.aliyuncs.com/imag/image74.png)
2、打开ES Head扩展程序查看文档
![图片[10]-Elasticsearch文档与Mapping实战:CRUD、自定义类型与字段设计-AI运维探索者](https://bucketbucket1.oss-cn-beijing.aliyuncs.com/imag/image75.png)
1.4 文档的删除
1、填写DELETE请求http://192.168.1.121:9200/es1-num/_doc/1001,删除文档
![图片[11]-Elasticsearch文档与Mapping实战:CRUD、自定义类型与字段设计-AI运维探索者](https://bucketbucket1.oss-cn-beijing.aliyuncs.com/imag/image76.png)
2、打开ES Head扩展程序查看文档,ID为1001的文档已被删除
![图片[12]-Elasticsearch文档与Mapping实战:CRUD、自定义类型与字段设计-AI运维探索者](https://bucketbucket1.oss-cn-beijing.aliyuncs.com/imag/image77.png)
1.5 文档的批量操作
1.5 批量创建
1、填写POST请求http://192.168.1.121:9200/_bulk,批量创建文档
{ "create": { "_index": "elk1"} }
{ "name": "oldboy","hobby":["Linux","思想课"] }
{ "create": { "_index": "elk1","_id": 1002} }
{ "name": "振亚老师","hobby":["妹子","吃面"] }
{ "create": { "_index": "elk1","_id": 1001} }
{ "name": "苍老师","hobby":["家庭主妇"] }
{ "create": { "_index": "elk1"} }
{ "name": "李导","hobby":["骑车","拍小电影"] }
![图片[13]-Elasticsearch文档与Mapping实战:CRUD、自定义类型与字段设计-AI运维探索者](https://bucketbucket1.oss-cn-beijing.aliyuncs.com/imag/image78.png)
2、打开ES Head扩展程序查看文档具体信息
![图片[14]-Elasticsearch文档与Mapping实战:CRUD、自定义类型与字段设计-AI运维探索者](https://bucketbucket1.oss-cn-beijing.aliyuncs.com/imag/image79.png)
1.5 批量修改
1、填写POST请求http://192.168.1.121:9200/_bulk,批量修改文档
{ "update" : {"_id" : "1001", "_index" : "elk1"} }
{ "doc" : {"name" : "CangLaoShi"} }
{ "update" : {"_id" : "1002", "_index" : "elk1"} }
{ "doc" : {"name" : "ZhenYaTeacher"} }
![图片[15]-Elasticsearch文档与Mapping实战:CRUD、自定义类型与字段设计-AI运维探索者](https://bucketbucket1.oss-cn-beijing.aliyuncs.com/imag/image80.png)
2、打开ES Head扩展程序查看文档具体信息,已经被修改成英文
![图片[16]-Elasticsearch文档与Mapping实战:CRUD、自定义类型与字段设计-AI运维探索者](https://bucketbucket1.oss-cn-beijing.aliyuncs.com/imag/image81.png)
1.5 查询文档
1、填写POST请求http://192.168.1.121:9200/_mget,批量查看id分别为1001和1002的文档
{
"docs": [
{
"_index": "elk1",
"_id": "1001"
},
{
"_index": "elk1",
"_id": "1002"
}
]
}
![图片[17]-Elasticsearch文档与Mapping实战:CRUD、自定义类型与字段设计-AI运维探索者](https://bucketbucket1.oss-cn-beijing.aliyuncs.com/imag/image82.png)
2、也可以打开ES Head扩展程序查看文档具体信息
![图片[18]-Elasticsearch文档与Mapping实战:CRUD、自定义类型与字段设计-AI运维探索者](https://bucketbucket1.oss-cn-beijing.aliyuncs.com/imag/image83.png)
1.5 批量删除
1、填写POST请求http://192.168.1.121:9200/_bulk,删除id分别为1001和1002的文档
{ "delete" : { "_index" : "elk1", "_id" : "1001" } }
{ "delete" : { "_index" : "elk1", "_id" : "1002" } }
![图片[19]-Elasticsearch文档与Mapping实战:CRUD、自定义类型与字段设计-AI运维探索者](https://bucketbucket1.oss-cn-beijing.aliyuncs.com/imag/image84.png)
2、打开ES Head扩展程序查看文档具体信息
![图片[20]-Elasticsearch文档与Mapping实战:CRUD、自定义类型与字段设计-AI运维探索者](https://bucketbucket1.oss-cn-beijing.aliyuncs.com/imag/image85.png)
二、使用映射(mapping)自定义数据类型
2.1 映射的数据类型
当写入文档时,字段的数据类型会被ES动态自动创建,但有的时候动态创建的类型并符合我们的需求。这个时侯就可以使用映射解决。
使用映射技术,可以对ES文档的字段类型提前定义我们期望的数据类型,便于后期的处理和搜索。
常用的三种数据类型:
-
text:全文检索,可以被全文匹配,即该字段是可以被拆分的。
-
keyword:精确匹配,必须和内容完全匹配,才能被查询出来。
-
ip:支持Ipv4和Ipv6,将来可以对该字段类型进行IP地址范围找索。
参考链接:
-
https://www.elastic.co/guide/en/elasticsearch/reference/7.17/mapping-types.html
-
https://www.elastic.co/guide/en/elasticsearch/reference/7.17/mapping.html
2.2 IP案例
2.2 创建索引时指定映射关系
1、填写PUT请求http://192.168.1.121:9200/elk-ip, 创建索引时指定映射关系
{
"mappings": {
"properties": {
"ip_addr": {
"type": "ip"
}
}
},
"settings": {
"number_of_shards": 3,
"number_of_replicas": 0
}
}
![图片[21]-Elasticsearch文档与Mapping实战:CRUD、自定义类型与字段设计-AI运维探索者](https://bucketbucket1.oss-cn-beijing.aliyuncs.com/imag/image86.png)
2、打开ES Head扩展程序查看索引
![图片[22]-Elasticsearch文档与Mapping实战:CRUD、自定义类型与字段设计-AI运维探索者](https://bucketbucket1.oss-cn-beijing.aliyuncs.com/imag/image87.png)
2.2 查看索引的映射关系
1、填写GET请求http://192.168.1.121:9200/elk-ip, 查看索引的映射关系
![图片[23]-Elasticsearch文档与Mapping实战:CRUD、自定义类型与字段设计-AI运维探索者](https://bucketbucket1.oss-cn-beijing.aliyuncs.com/imag/image88.png)
2、打开ES Head扩展程序查看索引映射关系
![图片[24]-Elasticsearch文档与Mapping实战:CRUD、自定义类型与字段设计-AI运维探索者](https://bucketbucket1.oss-cn-beijing.aliyuncs.com/imag/image89.png)
2.2 创建测试数据
1、填写POST请求http://192.168.1.121:9200/_bulk, 创建索引时指定映射关系
{ "create": { "_index": "elk-ip"} }
{ "ip_addr": "192.168.10.101" }
{ "create": { "_index": "elk-ip"} }
{ "ip_addr": "192.168.10.201" }
{ "create": { "_index": "elk-ip"} }
{ "ip_addr": "172.31.10.100" }
{ "create": { "_index": "elk-ip"} }
{ "ip_addr": "10.0.0.222" }
![图片[25]-Elasticsearch文档与Mapping实战:CRUD、自定义类型与字段设计-AI运维探索者](https://bucketbucket1.oss-cn-beijing.aliyuncs.com/imag/image90.png)
2、打开ES Head扩展程序查看索引
![图片[26]-Elasticsearch文档与Mapping实战:CRUD、自定义类型与字段设计-AI运维探索者](https://bucketbucket1.oss-cn-beijing.aliyuncs.com/imag/image91.png)
2.2 查看指定IP网段
1、填写GET请求http://192.168.1.121:9200/elk-ip/_search, 查看192.168.0.0/16的网段
{
"query":{
"match":{
"ip_addr": "192.168.0.0/16"
}
}
}
![图片[27]-Elasticsearch文档与Mapping实战:CRUD、自定义类型与字段设计-AI运维探索者](https://bucketbucket1.oss-cn-beijing.aliyuncs.com/imag/image92.png)
2.2 删除索引
1、填写DELETE请求http://192.168.1.121:9200/elk-ip, 删除索引elk-ip
![图片[28]-Elasticsearch文档与Mapping实战:CRUD、自定义类型与字段设计-AI运维探索者](https://bucketbucket1.oss-cn-beijing.aliyuncs.com/imag/image93.png)
2、打开ES Head扩展程序查看索引elk-ip已经被删除
![图片[29]-Elasticsearch文档与Mapping实战:CRUD、自定义类型与字段设计-AI运维探索者](https://bucketbucket1.oss-cn-beijing.aliyuncs.com/imag/image94.png)
2.3 date案例
2.3 创建索引时指定映射关系
1、填写PUT请求http://192.168.1.121:9200/elk-date, 创建索引时指定映射关系
{
"mappings": {
"properties": {
"birthday": {
"type": "date",
"format": "yyyy-MM-dd"
}
}
}
}
![图片[30]-Elasticsearch文档与Mapping实战:CRUD、自定义类型与字段设计-AI运维探索者](https://bucketbucket1.oss-cn-beijing.aliyuncs.com/imag/image95.png)
2、打开ES Head扩展程序查看索引
![图片[31]-Elasticsearch文档与Mapping实战:CRUD、自定义类型与字段设计-AI运维探索者](https://bucketbucket1.oss-cn-beijing.aliyuncs.com/imag/image96.png)
2.3 查看索引的映射关系
1、填写GET请求http://192.168.1.121:9200/elk-date, 查看索引的映射关系
![图片[32]-Elasticsearch文档与Mapping实战:CRUD、自定义类型与字段设计-AI运维探索者](https://bucketbucket1.oss-cn-beijing.aliyuncs.com/imag/image97.png)
2、打开ES Head扩展程序查看索引映射关系
![图片[33]-Elasticsearch文档与Mapping实战:CRUD、自定义类型与字段设计-AI运维探索者](https://bucketbucket1.oss-cn-beijing.aliyuncs.com/imag/image98.png)
2.3 创建测试数据
1、填写POST请求http://192.168.1.121:9200/_bulk, 创建索引时指定映射关系
{ "create": { "_index": "elk-date"} }
{ "name": "oldboy","birthday": "1991-10-01" }
{ "create": { "_index": "elk-date"} }
{ "name": "李导","birthday": "2003-05-01" }
{ "create": { "_index": "elk-date"} }
{ "name": "振亚","birthday": "1996-05-01" }
![图片[34]-Elasticsearch文档与Mapping实战:CRUD、自定义类型与字段设计-AI运维探索者](https://bucketbucket1.oss-cn-beijing.aliyuncs.com/imag/image99.png)
2、打开ES Head扩展程序查看索引
![图片[35]-Elasticsearch文档与Mapping实战:CRUD、自定义类型与字段设计-AI运维探索者](https://bucketbucket1.oss-cn-beijing.aliyuncs.com/imag/image100.png)
2.3 查看测试数据
1、填写GET请求http://192.168.1.121:9200/elk-date/_search, 查看年龄,从大到小(注意,比较的是数字,数字大的在下面)
{
"sort": { "birthday": "asc"}
}
![图片[36]-Elasticsearch文档与Mapping实战:CRUD、自定义类型与字段设计-AI运维探索者](https://bucketbucket1.oss-cn-beijing.aliyuncs.com/imag/image101.png)
2.3 删除索引
1、填写DELETE请求http://192.168.1.121:9200/elk-date, 删除索引elk-date
![图片[37]-Elasticsearch文档与Mapping实战:CRUD、自定义类型与字段设计-AI运维探索者](https://bucketbucket1.oss-cn-beijing.aliyuncs.com/imag/image102.png)
2、打开ES Head扩展程序查看索引elk-date已经被删除
![图片[38]-Elasticsearch文档与Mapping实战:CRUD、自定义类型与字段设计-AI运维探索者](https://bucketbucket1.oss-cn-beijing.aliyuncs.com/imag/image103.png)
2.4 综合案例
2.4 创建索引
1、填写PUT请求http://192.168.1.121:9200/elk-2023, 创建索引时指定映射关系
![图片[39]-Elasticsearch文档与Mapping实战:CRUD、自定义类型与字段设计-AI运维探索者](https://bucketbucket1.oss-cn-beijing.aliyuncs.com/imag/image104.png)
2、打开ES Head扩展程序查看索引
![图片[40]-Elasticsearch文档与Mapping实战:CRUD、自定义类型与字段设计-AI运维探索者](https://bucketbucket1.oss-cn-beijing.aliyuncs.com/imag/image105.png)
2.4 查看索引
1、填写GET请求http://192.168.1.121:9200/elk-2023, 查看索引的映射关系
![图片[41]-Elasticsearch文档与Mapping实战:CRUD、自定义类型与字段设计-AI运维探索者](https://bucketbucket1.oss-cn-beijing.aliyuncs.com/imag/image106.png)
2、打开ES Head扩展程序查看索引
![图片[42]-Elasticsearch文档与Mapping实战:CRUD、自定义类型与字段设计-AI运维探索者](https://bucketbucket1.oss-cn-beijing.aliyuncs.com/imag/image107.png)
2.4 为已创建的索引修改数据类型
1、填写PUT请求http://192.168.1.121:9200/elk-2023/_mapping, 为已创建的索引修改数据类型
{
"properties": {
"name": {
"type": "text",
"index": true
},
"gender": {
"type": "keyword",
"index": true
},
"province": {
"type": "keyword",
"index": true
},
"city": {
"type": "keyword",
"index": false
},
"email": {
"type": "keyword"
},
"ip_addr": {
"type": "ip"
},
"birthday": {
"type": "date",
"format": "yyyy-MM-dd"
}
}
}
![图片[43]-Elasticsearch文档与Mapping实战:CRUD、自定义类型与字段设计-AI运维探索者](https://bucketbucket1.oss-cn-beijing.aliyuncs.com/imag/image108.png)
2、打开ES Head扩展程序查看索引数据类型
![图片[44]-Elasticsearch文档与Mapping实战:CRUD、自定义类型与字段设计-AI运维探索者](https://bucketbucket1.oss-cn-beijing.aliyuncs.com/imag/image109.png)
2.4 添加测试数据
1、填写POST请求http://192.168.1.121:9200/_bulk, 创建索引时指定映射关系
{ "create": { "_index": "elk-2023"}}
{ "name": "吴明昆","gender":"男性的","telephone":"1111111111","province":"广西","city":"北海市","email":"wumingkun@oldboyedu.com","ip_addr":"192.168.25.201","birthday":"1999-04-05"}
{ "create": { "_index": "elk-2023"}}
{ "name": "蒋相宇","gender":"女性的","telephone":"2222222222","province":"河南","city":"濮阳市","email":"jiangxiangyu@oldboyedu.com","ip_addr":"192.168.15.31","birthday":"2003-09-05","hobby":["抽烟","喝酒","烫头","足疗"]}
![图片[45]-Elasticsearch文档与Mapping实战:CRUD、自定义类型与字段设计-AI运维探索者](https://bucketbucket1.oss-cn-beijing.aliyuncs.com/imag/image110.png)
2、打开ES Head扩展程序查看索引
![图片[46]-Elasticsearch文档与Mapping实战:CRUD、自定义类型与字段设计-AI运维探索者](https://bucketbucket1.oss-cn-beijing.aliyuncs.com/imag/image111.png)
2.4 查看数据-基于gender-匹配keyword类型
1、填写GET请求http://192.168.1.121:9200/elk-2023/_search, 匹配gender的值为女,查看到匹配结果为空
{
"query":{
"match":{
"gender": "女"
}
}
}
![图片[47]-Elasticsearch文档与Mapping实战:CRUD、自定义类型与字段设计-AI运维探索者](https://bucketbucket1.oss-cn-beijing.aliyuncs.com/imag/image112.png)
说明:因为gender的类型为keyword,必须精确匹配才能匹配完成
2、填写GET请求http://192.168.1.121:9200/elk-2023/_search, 匹配gender的值为女性的,查看到成功匹配
{
"query":{
"match":{
"gender": "女性的"
}
}
}
![图片[48]-Elasticsearch文档与Mapping实战:CRUD、自定义类型与字段设计-AI运维探索者](https://bucketbucket1.oss-cn-beijing.aliyuncs.com/imag/image113.png)
2.4 查看数据-基于name字段搜索-匹配text类型
1、填写GET请求http://192.168.1.121:9200/elk-2023/_search, 匹配name的值为吴,查看到成功匹配
{
"query":{
"match":{
"name": "吴"
}
}
}
![图片[49]-Elasticsearch文档与Mapping实战:CRUD、自定义类型与字段设计-AI运维探索者](https://bucketbucket1.oss-cn-beijing.aliyuncs.com/imag/image114.png)
说明:因为name的类型为test,模糊匹配就能匹配完成
2.4 查看数据-基于email字段搜索-匹配keyword类型
1、填写GET请求http://192.168.1.121:9200/elk-2023/_search, 精准匹配email的值为jiangxiangyu@oldboyedu.com,查看到成功匹配
{
"query":{
"match":{
"email": "jiangxiangyu@oldboyedu.com"
}
}
}
![图片[50]-Elasticsearch文档与Mapping实战:CRUD、自定义类型与字段设计-AI运维探索者](https://bucketbucket1.oss-cn-beijing.aliyuncs.com/imag/image115.png)
2.4 查看数据-基于ip_addr字段搜索-匹配ip类型
1、填写GET请求http://192.168.1.121:9200/elk-2023/_search, 匹配ip_addr的值为192.168.15.0/24,查看到成功匹配
{
"query": {
"match" : {
"ip_addr": "192.168.15.0/24"
}
}
}
![图片[51]-Elasticsearch文档与Mapping实战:CRUD、自定义类型与字段设计-AI运维探索者](https://bucketbucket1.oss-cn-beijing.aliyuncs.com/imag/image116.png)
2.4 查看数据-基于city字段搜索,无法完成,该字段无法被检索
1、填写GET请求http://192.168.1.121:9200/elk-2023/_search, 匹配city的值为濮阳市,查看到不能成功匹配
{
"query":{
"match":{
"city": "濮阳市"
}
}
}
![图片[52]-Elasticsearch文档与Mapping实战:CRUD、自定义类型与字段设计-AI运维探索者](https://bucketbucket1.oss-cn-beijing.aliyuncs.com/imag/image117.png)
说明:因为city的index设置为false(默认为true),所以导致无法查询
2.4 删除索引
1、填写DELETE请求http://192.168.1.121:9200/elk-2023, 删除索引elk-2023
![图片[53]-Elasticsearch文档与Mapping实战:CRUD、自定义类型与字段设计-AI运维探索者](https://bucketbucket1.oss-cn-beijing.aliyuncs.com/imag/image118.png)
2、打开ES Head扩展程序查看索引elk-2023已经被删除
![图片[54]-Elasticsearch文档与Mapping实战:CRUD、自定义类型与字段设计-AI运维探索者](https://bucketbucket1.oss-cn-beijing.aliyuncs.com/imag/image119.png)





暂无评论内容