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

相关推荐
鬼手点金5 小时前
nanoGPT/nanochat 能做出 DeepSeek/Qwen 这样的大模型吗?
服务器·前端·javascript·bug·openclaw
蛋蛋的就会顺顺的5 小时前
hot100 p0——栈,贪心算法,动态规划
java·前端·javascript·算法·leetcode·力扣
程序员Sunday5 小时前
TypeScript 的 any、unknown、never 有什么区别?
前端·面试·typescript
朱涛的自习室5 小时前
70 美金的 Beyond Compare,我让 Gemini 4 和 DeepSeek 造个开源免费版(Day 2)
android·前端·人工智能
需要8266 小时前
Spring Bean 生命周期:从实例化到销毁的完整钩子
java·后端·spring
小 黄 鸡6 小时前
HashMap 面试必会知识点详解(JDK 8)
java·面试·职场和发展
码艺-Alimjan6 小时前
Tauri 源码备份 · 打包 & 解压 总结,源码收集之路
前端·javascript·vue.js
小马不起床6 小时前
零基础玩转 FastAPI_11:前端后台管理页面
前端·状态模式·fastapi
死磕音视频7 小时前
让小模型做选择题:限定候选项并读取 logits 概率的入门实践(附 Python 代码)
开发语言·python·大模型·文本分类·transformers
Elastic 中国社区官方博客7 小时前
一条 ES|QL 查询,涵盖365天的审计日志:在热数据和可搜索快照上执行相同的搜索
大数据·运维·服务器·elasticsearch·搜索引擎·全文检索