http操作es

测试es服务

在这里插入图片描述

操作索引

创建索引

http://192.168.110.14:9200/shopping
在这里插入图片描述
{
“acknowledged”: true, 响应结果
“shards_acknowledged”: true, 分片结果
“index”: “shopping” 索引名称
}
再次添加相同的索引:报错
在这里插入图片描述

查看所有索引

http://192.168.110.14:9200/_cat/indices?v
在这里插入图片描述

health:当前服务器健康状态:green(集群完整) yellow(单点正常、集群不完整) red(单点不正常)
status:索引打开、关闭状态
index:索引名
uuid:索引统一编号
pri :主分片数量
rep 副本数量
docs.count 可用文档数量
docs.deleted 文档删除状态(逻辑删除)
store.size 主分片和副分片整体占空间大小
pri.store.size 主分片占空间大小

查看索引:

http://192.168.110.14:9200/shopping
在这里插入图片描述

{
“shopping”: { 索引名称
“aliases”: {}, 别名
“mappings”: {}, 映射
“settings”: { 设置
“index”: { 索引
“creation_date”: “1625020090820”, 创建时间
“number_of_shards”: “5”, 主分片数量
“number_of_replicas”: “1”, 副分片数量
“uuid”: “Jnmea8sgRfikz77XlqkHaw”, 索引uuid 唯一性标识
“version”: { 索引版本
“created”: “5060999”
},
“provided_name”: “shopping” 索引名称
}
}
}
}

删除索引

http://192.168.110.14:9200/shopping
在这里插入图片描述
再次删除,索引不存在
在这里插入图片描述

操作文档

创建文档

在这里插入图片描述
{
“_index”: “shopping”,
“_type”: “phone”,
“_id”: “AXpa2or3t0FIJb8Na4mK”,
“_version”: 1,
“result”: “created”,
“_shards”: { 分片
“total”: 2, 总数
“successful”: 1,
“failed”: 0
},
“created”: true
}

未使用自定义的id,不支持put

在这里插入图片描述

自定义id

在这里插入图片描述

如果是自定义id,可以使用post和put请求,version发生变化。多次提交就是update

在这里插入图片描述

查看文档

http://192.168.110.14:9200/shopping/phone/1
在这里插入图片描述
{
“_index”: “shopping”,
“_type”: “phone”,
“_id”: “1”,
“_version”: 6,
“found”: true, 查询结果,true表示找到了,false表示未找到
“_source”: { 文档源信息
“title”: “小米手机222”,
“category”: “小米”,
“images”: “http://www.gulixueyuan.com/xm.jpg”,
“price”: 1999.00
}
}

修改文档

post或者put
在这里插入图片描述

修改单个字段:局部更新

http://192.168.110.14:9200/shopping/phone/1/_update
在这里插入图片描述

删除文档

http://192.168.110.14:9200/shopping/phone/1
在这里插入图片描述

删除一个不存在的文档

在这里插入图片描述

按照条件删除

post
http://192.168.110.14:9200/shopping/_delete_by_query
在这里插入图片描述
{
“took”: 118, 耗时
“timed_out”: false, 是否超时
“total”: 4, 总数
“deleted”: 4, 删除数量
“batches”: 1,
“version_conflicts”: 0,
“noops”: 0,
“retries”: {
“bulk”: 0,
“search”: 0
},
“throttled_millis”: 0,
“requests_per_second”: -1.0,
“throttled_until_millis”: 0,
“failures”: []
}

mappings 设置

使用put请求创建映射
http://192.168.110.14:9200/student/_mapping
{
“properties”:{
“name”:{ – 字段名称
“type”:“text”, – 字段类型
“index”:true
},
“sex”:{
“type”:“text”,
“index”:false
},
“age”:{
“type”:“long”,
“index”:false
}
}
}
1)字段类型 有哪些?
String 字符串类型
text: 可分词
keyword: 关键字 不可分词
Numerical 数值类型
基本类型:byte short int long double float
浮点数的高进度类型:scaled_float
Date 日期类型
Array 数组类型
Object 对象类型

2)定义中的index?
index 表示是否索引。默认是true,该字段会被索引到,能够进行搜索;false 表示不能被搜索到

3)store 是否将数据进行独立存储,默认是false
原始的文本会存储到_source,默认情况下 ,其他提取出来的字段都不是独立存储的,是从_source里面
提取出来的.当然你也可以独立的存储某个字段,只要设置"store":true即可,获取独立存储的字段
要比从_source中解析出来快得多,但是也会占用更多的空间,所以要更具业务需要来设置

4)analyzer: 分词器,这里的ik_max_word 及使用ik分词器

查询

get http://192.168.110.14:9200/shopping/_search

1)查询全部

{
    
    
	"query":{
    
    
		"mach_all":{
    
    
			
		}
	}
}

2)匹配查询

{
    
    
	"query":{
    
    
		"mach":{
    
    
			"name":"张三"
		}
	}
}

3)字段匹配查询

在多个字段上进行查询

{
    
    
	"query":{
    
    
		"multi_mach":{
    
    
			"name":"张三",
			"fields":["name","nickname"]
		}
	}
}

4)关键字精准查询 ,类似于 “=”

{
    
    
	"query":{
    
    
		"trrm":{
    
    
			"name":"张三"
		}
	}
}

5)多关键字精准查询

{
    
    
	"query":{
    
    
		"trrms":{
    
    
			"name":["张三","lisi"]
		}
	}
}

6)查询指定字段

{
    
    
	"_source":["name","age"]
	"query":{
    
    
		"trrm":{
    
    
			"name":"张三"
		}
	}
}

7)过滤字段

includes 包含
excludes 不包含
{
    
    
	"_source":{
    
    
		"includes":["name","age"],
		"excludes":["sex"]
	}
	"query":{
    
    
		"trrm":{
    
    
			"name":"张三"
		}
	}
}

8)组合查询

bool  must must_not should
{
    
    
	"query":{
    
    
		"bool":{
    
    
			"must":{
    
    
				"sex":"男"
			},
			"must_not":{
    
    
				"age":"40"
			},
			"should":{
    
    
				"name":"张"
			}
		}
	}
}

9) 查询范围

gt 大于>
gte 大于等于>=
lt 小于<
lte 小于等于<=
{
    
    
	"query":{
    
    
		"range":{
    
    
			"age":{
    
    
				"gt":10,
				"lt":50
			}
		}
	}
}

10) 模糊查询

fuzzy 类似于 like
fuzziness 指定距离

{
    
    
	"query":{
    
    
		"fuzzy":{
    
    
			"name":"si",
			"fuzziness":2
		},
		
	}
}

11) 单个字段排序

{
    
    
	"query":{
    
    
		"mach":{
    
    
			"name":"张三"
		}
	},
	"sort":[
		"age":{
    
    
			"order":desc
		}
	]
}

12)多个字段排序

{
    
    
	"query":{
    
    
		"mach_all":{
    
    }
	},
	"sort":[
		"age":{
    
    
			"order":desc
		},
		"_source":{
    
    
			"order":desc
		}
	]
}

13)高亮显示

{
    
    
	"query":{
    
    
		"mach_all":{
    
    }
	},
	"highlight":{
    
    
		"pre_tags": "<font color='red'>",
		"post_tags":"</font>"
		"fields":{
    
    
			"name":{
    
    
				
			}
		}
	}
}

14) 分页查询

{
    
    
	"query":{
    
    
		"mach_all":{
    
    }
	},
	"sort":[
		"age":{
    
    
			"order":desc
		}
	],
	"from":0
	"size":5
}

15) 聚合查询

最大

{
    
    
	"aggs":{
    
    
		"max_age":{
    
    
			"max":{
    
    
				"fields":"age"
			}
		}
	},
	"size":0
}

最小

{
    
    
	"aggs":{
    
    
		"min_age":{
    
    
			"min":{
    
    
				"fields":"age"
			}
		}
	},
	"size":0
}

平均

{
    
    
	"aggs":{
    
    
		"avg_age":{
    
    
			"avg":{
    
    
				"fields":"age"
			}
		}
	},
	"size":0
}

求和

{
    
    
	"aggs":{
    
    
		"sum_age":{
    
    
			"sum":{
    
    
				"fields":"age"
			}
		}
	},
	"size":0
}

个数

{
    
    
	"aggs":{
    
    
		"sum_age":{
    
    
			"sum":{
    
    
				"fields":"age"
			}
		}
	},
	"size":0
}

去重后求和

{
    
    
	"aggs":{
    
    
		"distinct_age":{
    
    
			"cardinality":{
    
    
				"fields":"age"
			}
		}
	},
	"size":0
}

一下子返回 max min avg count sum

{
    
    
	"aggs":{
    
    
		"seats_age":{
    
    
			"seats":{
    
    
				"fields":"age"
			}
		}
	},
	"size":0
}

16) 桶聚合查询 分组

{
    
    
	"aggs":{
    
    
		"age_groupby":{
    
    
			"terms":{
    
    
				"fields":"age"
			}
		}
	},
	"size":0
}

Guess you like

Origin blog.csdn.net/weixin_39472101/article/details/118355768