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可以对于大数据量进行查询,不适合实时查询展示

相关推荐
爱吃的强哥几秒前
vue3 使用 vite 管理多个项目,实现各子项目独立运行,独立打包
前端·javascript·vue.js
echo1754255 分钟前
Apipost免费版、企业版和私有化部署详解
java
谈不譚网安9 分钟前
CSRF请求伪造
前端·网络安全·csrf
夜夜敲码11 分钟前
C语言教程(十六): C 语言字符串详解
c语言·开发语言
TT模板15 分钟前
苹果cmsV10主题 MXonePro二开优化修复开源版
前端·html5
Debug_TheWorld15 分钟前
Elasticsearch学习
elasticsearch
拖孩16 分钟前
【Nova UI】十一、组件库中 Icon 组件的测试、使用与全局注册全攻略
前端·javascript·vue.js·ui·sass
宋康18 分钟前
C语言结构体和union内存对齐
c语言·开发语言
去伪存真21 分钟前
不用动脑,手把手跟着我做,就能掌握Gitlab+Jenkins提交代码自动构部署
前端·jenkins
异常君23 分钟前
Java 高并发编程:等值判断的隐患与如何精确控制线程状态
java·后端·代码规范