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

相关推荐
君若雅几秒前
我如何借助 Trae 三分钟搞定开源项目中的隐藏 BUG
java·后端·trae
程序猿小D7 分钟前
第14节 Node.js 全局对象
linux·前端·npm·node.js·编辑器·vim
蜘蛛侠..11 分钟前
Java中的阻塞队列
java·开发语言·优先级队列·阻塞队列·无界队列·有界队列·数组结构
Mintopia11 分钟前
当代码遇见光影魔术师:用 JavaScript 揭秘环境光遮蔽的奇幻世界
前端·javascript·计算机图形学
byte轻骑兵12 分钟前
【C++高级主题】命令空间(五):类、命名空间和作用域
开发语言·c++
洛阳泰山17 分钟前
【开源项目】MaxKB4J基于java开发的工作流和 RAG智能体的知识库问答系统
java·人工智能
IT-ZXT88820 分钟前
Spring 框架之IOC容器加载重要组件
java·后端·spring
Dignity_呱28 分钟前
别在傻傻分不清any void never unknown的场景啦
前端·vue.js·typescript
站在风口的猪110830 分钟前
《前端面试题:CSS3新特性》
前端·css·html·css3·html5
Jay_2734 分钟前
python项目如何创建docker环境
开发语言·python·docker