Elasticsearch教程(17) 返回结果过滤 _source_includes和_source_excludes使用
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使用相关推荐
- QIIME 2教程. 17鉴定和过滤嵌合体q2-vsearch(2021.2)
鉴定和过滤嵌合体序列q2-vsearch Identifying and filtering chimeric feature sequences with q2-vsearch https://do ...
- QIIME 2教程. 17鉴定和过滤嵌合体q2-vsearch(2020.11)
文章目录 鉴定和过滤嵌合体序列`q2-vsearch` 数据下载 无参嵌合体鉴定 可视化统计结果 过滤特征表和序列 过滤嵌合体和可疑序列 过滤嵌合但保留可疑序列 译者简介 Reference 猜你喜欢 ...
- ElasticSearch教程——proximity match 近似匹配
ElasticSearch汇总请查看:ElasticSearch教程--汇总篇 1.什么是近似匹配 两个句子 java is my favourite programming language, an ...
- Elasticsearch 教程--入门
1.1 初识 Elasticsearch 是一个建立在全文搜索引擎 Apache Lucene(TM) 基础上的搜索引擎,可以说 Lucene 是当今最先进,最高效的全功能开源搜索引擎框架. 但是 L ...
- ElasticSearch教程——创建索引、类型、文档
ElasticSearch汇总请查看:ElasticSearch教程--汇总篇 介绍 索引是ElasticSearch存放数据的地方,可以理解为关系型数据库中的一个数据库.事实上,我们的数据被存储和索 ...
- ES篇:ElasticSearch教程——创建索引、类型、文档
ES知识汇总:https://blog.csdn.net/gwd1154978352/article/details/82781731 介绍 索引是ElasticSearch存放数据的地方,可以理解为 ...
- ElasticSearch教程——基于term vector深入探查数据的情况
ElasticSearch汇总请查看:ElasticSearch教程--汇总篇 一.term vector介绍 获取document中的某个field内的各个term的统计信息. 1.term的基本信 ...
- PE文件详解(教程1-7)
PE文件详解(教程1-7) ========================================= PE教程1: PE文件格式一览 PE 的意思就是 Portable Executable ...
- 适用于Java开发人员的Elasticsearch教程
课程大纲 Elasticsearch是基于Lucene的搜索引擎. 它提供了具有HTTP Web界面和无模式JSON文档的分布式多租户全文搜索引擎. Elasticsearch是用Java开发的,并根 ...
最新文章
- 深度概览卷积神经网络全景图,没有比这更全的了
- 服务器系统打包,详解Docker 容器基础系统镜像打包
- 计算机统考408卷子谁批,【计算机统考】你对计算机统考408了解有多少?
- linux fcitx 守护进程,解决ubuntu下输入法切换问题
- SpringBoot+SweeAlert实现alert提示与前后端数据交互
- java小数点后两位 四舍五入_Java中double函数,四舍五入并保留小数点后两位的4种方法,BMI案例...
- WebApi网关之Bumblebee和Ocelot性能对比
- url过滤怎么解除_腾讯面试官是这样来问布隆过滤器的?
- leetcode —— 16. 最接近的三数之和
- 【hortonworks/registries】Parameter Schema name is null
- java quartz Scheduler 操作JobDetail
- 概率语言模型及其变形系列-LDA及Gibbs Sampling
- SSE图像算法优化系列十五:YUV/XYZ和RGB空间相互转化的极速实现(此后老板不用再担心算法转到其他空间通道的耗时了)。...
- python分词代码
- 企业进行OA系统选型的四大标准
- eleme后台的el-form表单分为左右两边放数据 :inline=true
- Unity Editor 编辑器介绍
- signature=d392c0d1876b3909bd8f7e1f3c0bef22,【技术分享】NSA武器库:CVE-2017-9073 EsteemAudit分析...
- 《Loy解说SpringBoot的注解》
- 选择软件开发平台,“快速开发”是关键
热门文章
- mysql 英文文献_mysql数据库英文文献.doc
- Flash教程1000例
- 大数据毕业设计可视化大屏前后端项目分享
- spice仿真模型导入multisim注意事项
- 跟着 伍逸 老师学GDI+ 之SolidBrush,HatchBrush,LinearGradientBrush
- 【Docker】clair镜像扫描的实现
- Some Self-limited Belief in my Machine Learning Goals
- 北京个人申请车牌号要什么条件?
- adobe acrobat提取pdf中某个区域为单独的pdf或者eps文件
- 阿里如何用 AI 写代码?