elasticsearch学习 (四)

目录
1.elasticsearch基本增删改查
2.两种查询方法
3.match和match_all函数
4.sort排序
5.分页
6.bool索引

一、基本增删改查

1.增加文档并填写数据

put 索引/_doc/id

在这里插入图片描述
2.查看文档数据

get/索引/_doc/_search (查看所有文档数据)

在这里插入图片描述
3.修改文档

post 索引/_doc/id/_update {
			“doc”:{“要修改的字段”:”修改的数据”}
			}

列如修改第一个文档中的性别为famale

在这里插入图片描述
4.删除文档

post/索引/_doc/_delete_by_query? q=关键字(根据条件删除)

在这里插入图片描述

二、查询的两种方式

1.根据关键词查询
列如查询性别为男性的文档

get/索引/doc/_search?q={"gender":"male"}

2 DSL方法查询
查询年龄为23岁的文档

GET s1/_doc/_search
{
	“query”:{
	   “Match”:{
			“age”:23
		}
	}
}

在这里插入图片描述

三、match函数和match_all函数

1.match函数方法见上(DSL查询方式)
2.match_all函数 查询所有文档

GET s1/_doc/_search
{
  "query":{
    "match_all":{
      
    }
  }
}

四、sort排序

sort排序是对数字类型的数据进行一个排序
列如对年龄做降序排序

GET s1/_doc/_search
{
  "query":{
    "match_all":{}
  },
  "sort":[
   {
     "age":{
       "order":"desc"
     }
   }
  ]
}

其中desc是降序 asc是升序

五、分页

当数据量过大时不能将数据通过一个页面显示出来,就需要分页处理

GET s1/_doc/_search
{
"query":{
"match_all":{}
},
"from":0,
"size":2
}

from表示起始页
size表示从第一条向后查询几条
列如 from:2 size:2 表示是查询第三第四条数据

六、bool索引

1.bool索引存在三个关键词 should、 must、 must not
在这里插入图片描述
2.查询年龄为23或者性别为男性的文档

GET s1/_search
{
  "query": {
    "bool": {
      "should": [
        {
          "match": {
            "age": "14"
          }
        },
        {
          "match": {
            "name": "housi"
          }
        }
        
      ]
    }
  }
}

在这里插入图片描述
3.查询年龄为81并且性别为male的文档

GET s1/_search
{
  "query":{
    "bool": {
      "must": [
        {
          "match": {
            "name": "zhouqi"
          }
        },
        {
          "match":{
            "gender":"male"
          }
        }
      ]
    }
  }
}

在这里插入图片描述

4.查询性别为既不是male年龄也不是23的数据

GET s1/_search
{
  "query": {
    "bool": {
      "must_not": [
        {
          "match": {
            "gender": "male"
          }
        },
        {
          "match": {
            "age": 23
          }
        }
      ]
    }
  }
}

在这里插入图片描述
5.查询年龄大于20并且性别为famale的文档
首先用到了match函数先将性别为男的数据提取出来,再用filter函数将年龄大于20的数据提取出来。
其中用到了 filter-range函数 其中gte表示大于等于 gt表示大于 lt表示小于 lte表示小于等于1

GET s1/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "match": {
            "gender": "female"
          }
        }
      ],
      "filter": [
        {"range": {
          "age": {
            "gte": 18
          }
        }}
      ]
    }
  }
}

6.查询年龄大于23的非男性
先用must_not选出不是男性的数据在使用filter进行过滤

GET s1/_search
{
  "query": {
    "bool": {
      "must_not": [
        {
          "match": {
            "gender": "male"
          }
        }
      ],
      "filter": [
        {
          "range": {
            "age":{
              "gte":18
            }
          }
        }
      ]
    }
  }
}

在这里插入图片描述

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值