ElasticSearch(8)其他查询(脚本):这个是重点

matchAll查询

matchAll查询:查询所有文档
语法:

GET 索引名称/_search{
 "query":{
   "match_all":{}
   }
}

在这里插入图片描述
查询出来的结果,默认情况下,es一次展示10条数据

但是一般通过from和size来控制分页

在这里插入图片描述

{
  "took" : 0, //时间,第一次执行比较慢,后面就会越来越快,因为执行的结果会缓存到内存里面去
  "timed_out" : false,//超时没有
  "_shards" : {//分片信息,集群。。
    "total" : 1,
    "successful" : 1,
    "skipped" : 0,
    "failed" : 0
  },
  "hits" : {//命中
    "total" : {
      "value" : 3, //命中的条数是3条
      "relation" : "eq"//操作方式是:等值查的
    },
    "max_score" : 1.0,//得分,后面会根据得分进行排序,得分越高顺序越靠前
    "hits" : [//命中的数据,是一个数组
      {
        "_index" : "person",//索引
        "_type" : "_doc",//默认的文档
        "_id" : "5",//id,表示文档的唯一标识,默认字符串类型
        "_score" : 1.0,//得分,根据其排序
        "_source" : {//真实数据
          "name" : "美丽",
          "age" : 90,
          "address" : "天津"
        }
      },
      {
        "_index" : "person",
        "_type" : "_doc",
        "_id" : "2",
        "_score" : 1.0,
        "_source" : {
          "name" : "李二",
          "age" : 22,
          "address" : "北京海淀区"
        }
      }
    ]
  }
}

term查询

term查询:不会对查询条件进行分词。
语法:

GET 索引名称/_search{
 query":{
   "term" : {
      "字段名称":{
        "value":"查询条件"
       }
    }
  }
}

一般是将类型是keyword的,使用term进行查询
在这里插入图片描述

match查询

match查询:

  • 会对查询条件进行分词。
  • 然后将分词后的查询条件和词条进行等值匹配
  • 默认取并集(OR)

语法:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
match是词条分词后的等值匹配,无法进行模糊查询

模糊查询

wildcard查询

wildcard查询:会对查询条件进行分词。还可以 使用通配符?(任意单个字符)和*(0个或多个字符)
注意:在词的前面不要去写什么通配符,否则的话是会全部都去扫描的
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

regexp查询

regexp查询:正则查询
性能取决于正则表达式的性能
在这里插入图片描述
在这里插入图片描述

prefix查询

prefix查询:前缀查询
其对keyword类型的支持比较好,一般用其查询keyword类型的
在这里插入图片描述
在这里插入图片描述

范围查询

range范围查询:查找指定字段在指定范围内包含值

添加一个number索引,进行操作
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

排序

在这里插入图片描述
在这里插入图片描述

queryString查询

希望多字段进行查询

queryString:

  • 会对查询条件进行分词。
  • 然后将分词后的查询条件和词条进行等值匹配
  • 默认取并集(OR)

    还可以使用AND,但是这些都必须是大写的,小写的识别不了

  • 可以指定多个查询字段

    也就是说,会一个字段一个字段的去查询,将查询的结果返回

语法:

GET 索引名称/_search
{
 "query":{
    "query_strimg":{
      "fileds":["字段1","字段2"...],
      "query":"查询条件1 OR 查询条件2"
    }
 }
}

query_string

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

simple_query_string

在这里插入图片描述

布尔查询

boolQuery:对多个查询条件连接。连接方式:

  • must (and):条件必须成立,会计算得分
  • must_not (not) :条件必须不成立
  • should (or):条件可以成立
  • filter:条件必须成立,性能比must高。不会计算得分

语法:

GET 索引名称/_search
{
   "query": {
     "bool": {
       "must": [{} ],
       "filter": [{}],
       "must_not": [{}],
       "should": [{}]
     }
   }
}

must(计算得分)

在这里插入图片描述
在这里插入图片描述

filter(不计算得分)

在这里插入图片描述
在这里插入图片描述

聚合查询

指标聚合:相当于MySQL的聚合函数。max、min、avg、sum等

桶聚合:相当于MySQL的group by操作。不要对text类型的数据进行分组,会失败。

指标聚合

在这里插入图片描述
在这里插入图片描述

桶聚合

用途:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

高亮查询

高亮三要素:

  • 高亮字段
  • 前缀
  • 后缀
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

?abc!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值