栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

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

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类型的数据进行分组,会失败。

指标聚合


桶聚合

用途:


高亮查询

高亮三要素:

  • 高亮字段
  • 前缀
  • 后缀


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/688466.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号