ES查询学习(随时更新)

简介: ES查询学习(随时更新)

ES查询学习


常用查询

match_all       查询所有
match     分词匹配查询, 模糊查询
term      精确查找, 单个字段等值匹配
terms   多个字段等值匹配

基础查询

{
  "query": {"match": {}}                  # 编写查询条件
  "size": 1                         # 返回数量, 默认为10
  "from": 10                          # 索引下标, 从第几条开始, 默认为0
  "sort": {"length": {"order": "desc"}}     # 按length进行降序排序
  "_source": ["id", "length"]         # 返回多个字段
}


布尔查询

{
  "query": {
    "bool": {
      "must": [
        {"term": {'id': 110}},          ### must == and  必须两个都为真才会返回
        {"term": {'id': 111}}
      ],
      "should": [
        {"match":  {'borough': "黑龙国际"}}, ### should == or  两个有一个为真才会返回
        {"match":  {'borough': "天下国际"}}
      ],
      "must_not": [
        {"match": {'name': "国美花园"}},     ### must_not == not 全部为假才会返回
        {"match": {'name': "天坛公园"}},
      ]
    }
  }
}
gt  大于    gte  大于等于   lt  小于    lte  小于等于

过滤查询(filter过滤条件)

{
  "query": {
    "bool": {
      "must": {"match_all": {}}, 
      "filter": {
        "range": {
          "price": {
            "gte": 1000,     ### 查询price字段在1000到2000之内的所有数据
            "lte": 2000 
          }
        }
      }
    }
  }
}
相当于  select * from complex where 1000 <= price and price <= 2000

聚合查询(Aggregations)


{
  "aggs": {
    "group_by_state": {
      "terms": {
        "field": "borough_name"   ### 所有数据按照小区名进行分组, 然后按照分组记录数从大到小排序
      }
    }
  },
  "size": 0     ### 只返回聚合结果
}
相当于  select borough_name, count(*) from complex group by borough_name order by count(*) desc


聚合查询里面执行求平均操作
{
  "aggs": {
    "group_by_state": {
      "terms": {
        "field": "borough_name"   ### 所有数据按照小区名进行分组, 然后按照分组记录数从大到小排序
      },
      "aggs": {
        "average_balance": {
          "avg": {
            "field": "price"
          }
        }
      }
    }
  },
  "size": 0     ### 只返回聚合结果
}
select borough_name, avg(price) ,count(*) from complex group by borough_name order by count(*) desc


目录
相关文章
|
前端开发 API
ES 高级实战(四)查询 ES 数据
ES 高级实战(四)查询 ES 数据
1404 0
ES 高级实战(四)查询 ES 数据
|
1月前
|
存储 JSON 自然语言处理
es索引文档过程
Elasticsearch 索引文档流程:先通过 REST API 或客户端创建索引,定义文档结构的映射;接着索引 JSON 格式的文档,Elasticsearch 解析、索引并存储;最后,文档以倒排索引形式存储,支持高效全文搜索。
43 5
|
8月前
|
存储 Unix 索引
ES常用查询命令
ES常用查询命令
|
8月前
|
存储
ES批量写入数据
ES批量写入数据
292 1
|
JavaScript 前端开发
ES6新增特性学习
ES6新增特性学习
ES5新增方法(一)
前言 今天和大家分享一下ES5中一些新增的方法。 一、数组方法 迭代(遍历)方法:forEach(),map(),filter(),some(),every() array.forEach(function(value,index,arr)) value:数组当前项的值 index:数组当前项的索引 arr:数组对象本身
|
人工智能
ES中更新字段和删除字段的操作
ES中更新字段和删除字段的操作
每天3分钟,重学ES6-ES12(七)ES10 新增内容
每天3分钟,重学ES6-ES12(七)ES10 新增内容
95 0
|
测试技术 索引
ES数据删除优化
分享一下ES数据删除优化的相关经历,根据业务需要一共优化了3次,包含了其中踩到的坑和一些花时间解决的问题.
1134 0
ES删除索引和测试关于文档的操作
ES删除索引和测试关于文档的操作