es的总结

es的collapse

es的collapse只能针对一个字段聚合(针对大数据量去重),如果以age为聚合字段,则会展示第一条数据,如果需要展示多个字段,需要创建新的字段,如下

javascript 复制代码
POST testleh/_update_by_query
{
  "script": {
    "source": "ctx._source.new_field = ctx._source.name+','+ctx._source.age "
  }
}

该代码以age和那么创建了一个newfiled,如下图

这时就可以重新使用collapse查询

javascript 复制代码
GET /testleh/_search
{
  "_source": "name", 
  "query": {
    "match_all": {}
  },
  "sort": [
    {
      "age": {
        "order": "desc"
      }
    }
  ],
  "collapse": {
    "field": "new_field.keyword"
  },
  
}

附上删除索引的代码

javascript 复制代码
POST testleh/_update_by_query
{
  "script": {
    "source": "if (ctx._source.containsKey('new_field')) { ctx._source.remove('new_field') }"
  }
}

term匹配多个查询条件

再者就是对于term匹配多个查询条件,代码如下,主要是should或者must里面一个大括号只能写一个term/match/range

javascript 复制代码
GET /testleh/_search
{
  "query": {
    "bool": {
      "should": [
        {
          "term": {
            "age": {
              "value": "18"
            }
          }
        },{
          "term": {
            "name": {
              "value": "李华"
            }
          }
        }
      ]
    }
  }
}

es的scroll可以对于大数据量进行查询,不适合实时查询展示

相关推荐
在路上`6 分钟前
前端学习之后端java小白(二)-sql约束/建表
java·sql·学习
我真的是大笨蛋9 分钟前
JVM 四大晋升机制
java·jvm
bkspiderx13 分钟前
C++时区操作全版本指南(含C++03/C++11-17/C++20)
linux·开发语言·c++·c++20·时区
木心爱编程16 分钟前
C++20多线程新特性:更安全高效的并发编程
java·jvm·c++20
ljf883817 分钟前
Java导出复杂excel,自定义excel导出
java·开发语言·excel
真*小白18 分钟前
Python语法学习篇(三)【py3】
开发语言·python·学习
前端小巷子19 分钟前
JS打造“九宫格抽奖”
前端·javascript·面试
潘小安22 分钟前
『译』资深前端开发者如何看待React架构
前端·react.js·面试
江流月照25 分钟前
PCIE地址空间介绍
java·服务器·网络
好望角雾眠29 分钟前
第四阶段C#通讯开发-1:通讯基础理论,串口,通讯模式,单位转换,代码示例
开发语言·笔记·c#·串口·通讯