Elastic Search常用API
Eelastic Search常用API索引操作创建索引# 方式一(ES7 在不指定分片数和副本的情况下:默认创建一个主分片,一个副本)PUT /monk# 方式二PUT monk{"settings": {"number_of_replicas": 1,//副本数"number_of_shards": 1//分片数}}删除索引DEL...
·
Eelastic Search常用API
索引操作
创建索引
# 方式一(ES7 在不指定分片数和副本的情况下:默认创建一个主分片,一个副本)
PUT /monk
# 方式二
PUT monk
{
"settings": {
"number_of_replicas": 1, //副本数
"number_of_shards": 1 //分片数
}
}
删除索引
DELETE /monk
修改索引配置
# 修改副本数量
PUT /monk/_settings
{
"number_of_replicas":0
}
数据操作
添加数据
# 指定数据ID
POST /monk/_doc/1001
{
"id": 1001,
"name":"张三",
"age": 24,
"sex": "男"
}
# 不指定数据ID,ES会自动生成一个(字段id和_id是两个字段,在某种意义上有很大的区别)
POST /monk/_doc/
{
"id": 1001,
"name":"张三",
"age": 24,
"sex": "男"
}
删除数据
DELETE /monk/_doc/1001
更新数据
全量更新数据
# 方式一
POST /monk/_doc/1001
{
"id": 1001,
"name":"张三",
"age": 24,
"sex": "女"
}
# 方式二(全量更新的时候,不区分POST/PUT请求方式)
PUT /monk/_doc/1001
{
"id": 1001,
"name":"张三",
"age": 24,
"sex": "女"
}
局部更新数据
# 局部更新数据的时候,只允许POST请求
POST /monk/_update/1001
{
"doc":{
"sex": "男"
}
}
查询操作
关于查询操作有太多太多,这里也就不一一列举,可以参照官网,这里从官网上找了些简单的题目做了下,可以参照下。
# 根据ID查询
GET /bank/_source/
{
"query": {
"match": {
"_id": 1
}
}
}
# 更新指定ID的年龄(使用脚本的方式)
POST /bank/_update/1
{
"script": "ctx._source.age+=5"
}
# 执行match_all操作,并按帐户余额降序对结果进行排序,并返回前10个的账户和账户余额
GET /bank/_search/
{
"query": {
"match_all": {
}
},
"sort": [
{
"balance": {
"order": "desc"
}
}
],
"_source": ["account_number", "balance"],
"size": 10,
"from": 0
}
# 返回帐户为20的
GET /bank/_search/
{
"query": {
"match": {
"account_number": 20
}
}
}
# 返回地址中包含“mill”或“lane”的所有帐户
GET /bank/_search/
{
"query": {
"match": {
"address": "mill lane"
}
}
}
# 返回地址中包含“mill”和“lane”的所有帐户
GET /bank/_search
{
"query": {
"bool": {
"must": [
{
"match": {
"address": "mill"
}
},
{
"match": {
"address": "lane"
}
}
]
}
}
}
# 地址中既不包含“mill”也不包含“lane”的所有帐户
GET /bank/_search
{
"query": {
"bool": {
"must_not": [
{
"match": {
"address": "mill"
}
},
{
"match": {
"address": "lane"
}
}
]
}
}
}
# 返回所有40岁但不居住在ID的人(state不等于ID)的账户
GET /bank/_search/
{
"query": {
"bool": {
"must": [
{
"match": {
"age": 40
}
}
],
"must_not": [
{
"match": {
"state": "ID"
}
}
]
}
},
"_source": ["age", "state"]
}
# 返回余额在20000到30000之间的所有帐户,包括余额
GET /bank/_search
{
"query": {
"range": {
"balance": {
"gte": 20000,
"lte": 30000
}
}
},
"_source": ["account_number", "balance", "state"],
"size": 10,
"from": 0
}
# 按状态(state)对所有帐户进行分组,然后返回按count升序排列的前5个
GET /bank/_search
{
"aggs": {
"group_by_state": {
"terms": {
"field": "state.keyword",
"size": 5,
"order": {
"_count": "asc"
}
}
}
},
"size": 0
}
# 按状态计算平均帐户余额,并倒序排列返回前五条记录
GET /bank/_search
{
"aggs": {
"group_by_state": {
"terms": {
"field": "state.keyword",
"order": {
"avg_balance": "desc"
},
"size": 5
},
"aggs": {
"avg_balance": {
"avg": {
"field": "balance"
}
}
}
}
},
"size": 0
}
# 按照年龄等级(20-29岁,30-39岁,40-49岁)分组,然后按性别分组,最后得到每个年龄等级,每个性别的平均账户余额
GET /bank/_search
{
"aggs": {
"group_by_age": {
"range": {
"field": "age",
"ranges": [
{
"from": 20,
"to": 30
},{
"from": 30,
"to": 40
},{
"from": 40,
"to": 50
}
]
},
"aggs": {
"group_by_gender": {
"terms": {
"field": "gender.keyword",
"size": 10
},
"aggs": {
"avg_balance": {
"avg": {
"field": ""
}
}
}
}
}
}
},
"size": 0
}
点击阅读全文
更多推荐
7日热学榜
活动日历
查看更多
活动时间 2025-01-01 00:00:00

丁奇:MySQL高频面试题详解
活动时间 2025-01-01 00:00:00

AI 大模型应用开发 · 实战营
活动时间 2025-01-01 00:00:00

AI系列课程-IT全学科自学科
活动时间 2025-01-01 00:00:00

3 小时掌握 Prompt 核心技巧与 GPT 技术理论
活动时间 2025-01-01 00:00:00

0基础2个月拿下软考高级证书体验课
目录
所有评论(0)