ES返回结果过滤 _source_includes和_source_excludes

  • 1. 造点测试数据
  • 2. _source参数
    • 2.1 根据id查询时,只返回_source
    • 2.2 设置_source=false,则不返回_source
  • 3. 在请求体中设置_source_includes和_source_excludes
    • 3.1 _source_includes:只返回部分字段
    • 3.2 如果只是_source_includes可以简写如下
    • 3.3 _source_excludes:屏蔽部分字段
    • 3.4 都有时,excludes优先级>includes优先级

默认情况下,ES查询时返回所有字段的,但是有时,我们只想返回个别字段,或者不想返回某几个字段,这个时候就可以用到_source_includes和_source_excludes。
从字面上看_source_includes就是包含的字段,_source_excludes就是屏蔽的字段。

1. 造点测试数据

PUT /pigg_test/_doc/1
{"name": "冬哥","age": 33,"interest": ["music", "food"]
}PUT /pigg_test/_doc/2
{"name": "珣爷","age": 28,"interest": ["music", "sleep"],"about": "I am a tester"
}PUT /pigg_test/_doc/3
{"name": "胖丫","age": 3,"interest": ["food", "sleep"],"about": "I am a girl"
}

2. _source参数

2.1 根据id查询时,只返回_source

先看下默认查询id=1时的返回

GET /pigg_test/_doc/1返回:
{"_index" : "pigg_test","_type" : "_doc","_id" : "1","_version" : 1,"_seq_no" : 0,"_primary_term" : 1,"found" : true,"_source" : {"name" : "冬哥","age" : 33,"interest" : ["music","food"]}
}

再看下加了_source参数的返回

GET /pigg_test/_doc/1/_sourceES版本到7.x后,得这么写
GET /pigg_test/_source/1只是返回了_source里的内容,不返回_index,_type,_version等信息
{"name" : "冬哥","age" : 33,"interest" : ["music","food"]
}

2.2 设置_source=false,则不返回_source

默认情况下_source=true,如果不想返回_source,需要指定_source=false

GET /pigg_test/_doc/1?_source=false返回如下,结果中没有了_source
{"_index" : "pigg_test","_type" : "_doc","_id" : "1","_version" : 1,"_seq_no" : 0,"_primary_term" : 1,"found" : true
}

3. 在请求体中设置_source_includes和_source_excludes

3.1 _source_includes:只返回部分字段

GET pigg_test/_search
{"query": {"term": {"interest": {"value": "food"}}},"_source": {"includes": ["name", "interest"]}
}

返回的_source中只包含 “music”, “food”

...省略别的信息..."hits" : [{"_index" : "pigg_test","_type" : "_doc","_id" : "1","_score" : 0.4700036,"_source" : {"interest" : ["music","food"],"name" : "冬哥"}},{"_index" : "pigg_test","_type" : "_doc","_id" : "3","_score" : 0.4700036,"_source" : {"interest" : ["food","sleep"],"name" : "胖丫"}}]

3.2 如果只是_source_includes可以简写如下


GET pigg_test/_search?_source=false
{"query": {"term": {"interest": {"value": "food"}}},"_source": ["name", "interest"]
}

3.3 _source_excludes:屏蔽部分字段

GET pigg_test/_search
{"query": {"term": {"interest": {"value": "food"}}},"_source": {"excludes": ["age", "about", "interest"]}
}

返回结果中,_source就屏蔽了"age", “about”, “interest”

...省略别的信息..."hits" : [{"_index" : "pigg_test","_type" : "_doc","_id" : "1","_score" : 0.4700036,"_source" : {"name" : "冬哥"}},{"_index" : "pigg_test","_type" : "_doc","_id" : "3","_score" : 0.4700036,"_source" : {"name" : "胖丫"}}]

3.4 都有时,excludes优先级>includes优先级

GET pigg_test/_search
{"query": {"term": {"interest": {"value": "food"}}},"_source": {"includes": ["interest", "name"],"excludes": ["interest", "about"]}
}

includes包含了interest,但excludes也包含了excludes。
返回结果中只有name。

...省略别的信息...
"hits" : [{"_index" : "pigg_test","_type" : "_doc","_id" : "1","_score" : 0.4700036,"_source" : {"name" : "冬哥"}},{"_index" : "pigg_test","_type" : "_doc","_id" : "3","_score" : 0.4700036,"_source" : {"name" : "胖丫"}}]

Elasticsearch教程(17) 返回结果过滤 _source_includes和_source_excludes使用相关推荐

  1. QIIME 2教程. 17鉴定和过滤嵌合体q2-vsearch(2021.2)

    鉴定和过滤嵌合体序列q2-vsearch Identifying and filtering chimeric feature sequences with q2-vsearch https://do ...

  2. QIIME 2教程. 17鉴定和过滤嵌合体q2-vsearch(2020.11)

    文章目录 鉴定和过滤嵌合体序列`q2-vsearch` 数据下载 无参嵌合体鉴定 可视化统计结果 过滤特征表和序列 过滤嵌合体和可疑序列 过滤嵌合但保留可疑序列 译者简介 Reference 猜你喜欢 ...

  3. ElasticSearch教程——proximity match 近似匹配

    ElasticSearch汇总请查看:ElasticSearch教程--汇总篇 1.什么是近似匹配 两个句子 java is my favourite programming language, an ...

  4. Elasticsearch 教程--入门

    1.1 初识 Elasticsearch 是一个建立在全文搜索引擎 Apache Lucene(TM) 基础上的搜索引擎,可以说 Lucene 是当今最先进,最高效的全功能开源搜索引擎框架. 但是 L ...

  5. ElasticSearch教程——创建索引、类型、文档

    ElasticSearch汇总请查看:ElasticSearch教程--汇总篇 介绍 索引是ElasticSearch存放数据的地方,可以理解为关系型数据库中的一个数据库.事实上,我们的数据被存储和索 ...

  6. ES篇:ElasticSearch教程——创建索引、类型、文档

    ES知识汇总:https://blog.csdn.net/gwd1154978352/article/details/82781731 介绍 索引是ElasticSearch存放数据的地方,可以理解为 ...

  7. ElasticSearch教程——基于term vector深入探查数据的情况

    ElasticSearch汇总请查看:ElasticSearch教程--汇总篇 一.term vector介绍 获取document中的某个field内的各个term的统计信息. 1.term的基本信 ...

  8. PE文件详解(教程1-7)

    PE文件详解(教程1-7) ========================================= PE教程1: PE文件格式一览 PE 的意思就是 Portable Executable ...

  9. 适用于Java开发人员的Elasticsearch教程

    课程大纲 Elasticsearch是基于Lucene的搜索引擎. 它提供了具有HTTP Web界面和无模式JSON文档的分布式多租户全文搜索引擎. Elasticsearch是用Java开发的,并根 ...

最新文章

  1. 深度概览卷积神经网络全景图,没有比这更全的了
  2. 服务器系统打包,详解Docker 容器基础系统镜像打包
  3. 计算机统考408卷子谁批,【计算机统考】你对计算机统考408了解有多少?
  4. linux fcitx 守护进程,解决ubuntu下输入法切换问题
  5. SpringBoot+SweeAlert实现alert提示与前后端数据交互
  6. java小数点后两位 四舍五入_Java中double函数,四舍五入并保留小数点后两位的4种方法,BMI案例...
  7. WebApi网关之Bumblebee和Ocelot性能对比
  8. url过滤怎么解除_腾讯面试官是这样来问布隆过滤器的?
  9. leetcode —— 16. 最接近的三数之和
  10. 【hortonworks/registries】Parameter Schema name is null
  11. java quartz Scheduler 操作JobDetail
  12. 概率语言模型及其变形系列-LDA及Gibbs Sampling
  13. SSE图像算法优化系列十五:YUV/XYZ和RGB空间相互转化的极速实现(此后老板不用再担心算法转到其他空间通道的耗时了)。...
  14. python分词代码
  15. 企业进行OA系统选型的四大标准
  16. eleme后台的el-form表单分为左右两边放数据 :inline=true
  17. Unity Editor 编辑器介绍
  18. signature=d392c0d1876b3909bd8f7e1f3c0bef22,【技术分享】NSA武器库:CVE-2017-9073 EsteemAudit分析...
  19. 《Loy解说SpringBoot的注解》
  20. 选择软件开发平台,“快速开发”是关键

热门文章

  1. mysql 英文文献_mysql数据库英文文献.doc
  2. Flash教程1000例
  3. 大数据毕业设计可视化大屏前后端项目分享
  4. spice仿真模型导入multisim注意事项
  5. 跟着 伍逸 老师学GDI+ 之SolidBrush,HatchBrush,LinearGradientBrush
  6. 【Docker】clair镜像扫描的实现
  7. Some Self-limited Belief in my Machine Learning Goals
  8. 北京个人申请车牌号要什么条件?
  9. adobe acrobat提取pdf中某个区域为单独的pdf或者eps文件
  10. 阿里如何用 AI 写代码?