006 GET API
1.HEAD检查是否存在文档
The API also allows to check for the existence of a document using HEAD
HEAD index2/_doc/1
结果:
200 - OK
2.Source 过滤
①By default, the get operation returns the contents of the _source field unless you have used the stored_fields parameter or if the _source field is disabled. You can turn off _source retrieval by using the _source parameter。
意思:
默认情况下,返回的结果是_source。
可以使用_source进行禁用。
GET index2/_doc/1
效果:
{
"_index" : "index2",
"_type" : "_doc",
"_id" : "1",
"_version" : 12,
"_seq_no" : 11,
"_primary_term" : 4,
"found" : true,
"_source" : {
"name" : "tom1",
"age" : 20
}
}
禁用:
GET index2/_doc/1?_source=false
结果:
{
"_index" : "index2",
"_type" : "_doc",
"_id" : "1",
"_version" : 12,
"_seq_no" : 11,
"_primary_term" : 4,
"found" : true
}
②If you only need one or two fields from the complete _source, you can use the _source_includesand _source_excludes parameters to include or filter out the parts you need. This can be especially helpful with large documents where partial retrieval can save on network overhead. Both parameters take a comma separated list of fields or wildcard expressions. Example
意思:
对于大型的文档,只过滤自己需要的结果是合适的,降低网络开销
可以使用参数进行控制source中的参数包含或者不包含。这种属于限制两边,留下中间的做法。
GET twitter/_doc/1
结果:
{
"_index" : "twitter",
"_type" : "_doc",
"_id" : "1",
"_version" : 6,
"_seq_no" : 5,
"_primary_term" : 1,
"found" : true,
"_source" : {
"user" : "kimchy",
"post_date" : "2009-11-15T14:12:12",
"message" : "trying out Elasticsearch"
}
}
过滤:
GET twitter/_doc/1?_source_includes=u*,message&_source_excludes=post_date
结果:
{
"_index" : "twitter",
"_type" : "_doc",
"_id" : "1",
"_version" : 6,
"_seq_no" : 5,
"_primary_term" : 1,
"found" : true,
"_source" : {
"message" : "trying out Elasticsearch",
"user" : "kimchy"
}
}
③If you only want to specify includes, you can use a shorter notation
GET twitter/_doc/1?_source=message,user
结果:
{
"_index" : "twitter",
"_type" : "_doc",
"_id" : "1",
"_version" : 6,
"_seq_no" : 5,
"_primary_term" : 1,
"found" : true,
"_source" : {
"message" : "trying out Elasticsearch",
"user" : "kimchy"
}
}
3.存储字段
The get operation allows specifying a set of stored fields that will be returned by passing the stored_fields parameter. If the requested fields are not stored, they will be ignored. Consider for instance the following mapping
意思是:
可以通过设置参数,单独返回特定的字段
下面是mapping:
PUT tui
{
"mappings": {
"properties": {
"counter": {
"type": "integer",
"store": false
},
"tags": {
"type": "keyword",
"store": true
}
}
}
}
结果:
{
"acknowledged" : true,
"shards_acknowledged" : true,
"index" : "tui"
}
添加文档:
PUT tui/_doc/1
{
"counter" : 1,
"tags" : ["red","yellow"]
}
获取:
GET tui/_doc/1
结果:
{
"_index" : "tui",
"_type" : "_doc",
"_id" : "1",
"_version" : 1,
"_seq_no" : 0,
"_primary_term" : 1,
"found" : true,
"_source" : {
"counter" : 1,
"tags" : [
"red",
"yellow"
]
}
}
使用store_field:
GET tui/_doc/1?stored_fields=tags,counter
结果:
{
"_index" : "tui",
"_type" : "_doc",
"_id" : "1",
"_version" : 1,
"_seq_no" : 0,
"_primary_term" : 1,
"found" : true,
"fields" : {
"tags" : [
"red",
"yellow"
]
}
}
对于上面的结果,有些说明:
Field values fetched from the document itself are always returned as an array. Since the counterfield is not stored the get request simply ignores it when trying to get the stored_fields.
返回的结果作为一个数组,因为counter没有被存储,所以在获取stored_fields时或略。
4._source目录
Use the /{index}/_source/{id} endpoint to get just the _source field of the document, without any additional content around it.
GET twitter/_doc/1
效果:
{
"_index" : "twitter",
"_type" : "_doc",
"_id" : "1",
"_version" : 6,
"_seq_no" : 5,
"_primary_term" : 1,
"found" : true,
"_source" : {
"user" : "kimchy",
"post_date" : "2009-11-15T14:12:12",
"message" : "trying out Elasticsearch"
}
}
使用_source
GET twitter/_source/1
效果:
{
"user" : "kimchy",
"post_date" : "2009-11-15T14:12:12",
"message" : "trying out Elasticsearch"
}
006 GET API的更多相关文章
- Python 绝技 —— TCP服务器与客户端
i春秋作家:wasrehpic 0×00 前言 「网络」一直以来都是黑客最热衷的竞技场.数据在网络中肆意传播:主机扫描.代码注入.网络嗅探.数据篡改重放.拒绝服务攻击……黑客的功底越深厚,能做的就越多 ...
- 006 使用SpringMVC开发restful API四--用户信息的修复与删除,重在注解的定义
一:任务 1.任务 常用的验证注解 自定义返回消息 自定义校验注解 二:Hibernate Validator 1.常见的校验注解 2.程序 测试类 /** * @throws Exception * ...
- openstack api快速入门
原文:http://my.oschina.net/guol/blog/105430 openstack官方有提供api供开发者使用,可以使用api做一些外围的小工具,用来简化对openstack的管理 ...
- jQuery EasyUI API 中文文档 - ComboGrid 组合表格
jQuery EasyUI API 中文文档 - ComboGrid 组合表格,需要的朋友可以参考下. 扩展自 $.fn.combo.defaults 和 $.fn.datagrid.defaults ...
- 百度地图坐标转换API和地图API
利用百度地图的服务将经纬度转换为米单位坐标 using System; using System.Collections.Generic; using System.Linq; using Syste ...
- 创建以 API 为中心的 Web 应用
http://www.oschina.net/translate/creating-an-api-centric-web-application?from=20130818 正计划着要开始搞一个新的网 ...
- RESTful API Design With NodeJS & Restify
http://code.tutsplus.com/tutorials/restful-api-design-with-nodejs-restify--cms-22637 The RESTful API ...
- 【高德地图API】从零开始学高德JS API(六)——坐标转换
原文:[高德地图API]从零开始学高德JS API(六)——坐标转换 摘要:如何从GPS转到谷歌?如何从百度转到高德?这些都是小case.我们还提供,如何将基站cell_id转换为GPS坐标? --- ...
- Hbase多版本的读写(Shell&Java API版)
Hbase是基于HDFS的NOsql数据库,它很多地方跟数据库差不多,也有很多不同的地方.这里就不一一列举了,不过Hbase有个版本控制的特性,这个特性在很多场景下都会发挥很大的作用.本篇就介绍下基于 ...
随机推荐
- JSONObject对象
1.JSONObject介绍 JSONObject-lib包是一个beans,collections,maps,java arrays和xml和JSON互相转换的包. 方法: 的getString() ...
- nginx 代理 websocket
nginx 代理 websocket nginx 首先确认版本必须是1.3以上 map指令的作用: 该作用主要是根据客户端请求中$http_upgrade 的值,来构造改变$connection_up ...
- 关于Istio 1.1,你所不知道的细节
本文整理自Istio社区成员Star在 Cloud Native Days China 2019 北京站的现场分享 第1则 主角 Istio Istio作为service mesh领域的明星项目,从2 ...
- excel将一个工作表根据条件拆分成多个sheet工作表与合并多个sheet工作表
本例介绍在excel中如何将一个工作表根据条件拆分成多个工作表. 注意:很多朋友反映sheets(i).delete这句代码出错,要注意下面第一个步骤,要拆分的数据工作表名称为“数据源”, 而不是你新 ...
- JDK源码那些事儿之LinkedTransferQueue
在JDK8的阻塞队列实现中还有两个未进行说明,今天继续对其中的一个阻塞队列LinkedTransferQueue进行源码分析,如果之前的队列分析已经让你对阻塞队列有了一定的了解,相信本文要讲解的Lin ...
- 十二.Protobuf3编码
本文档描述了协议缓冲消息的二进制格式.在应用程序中使用Protocol Buffer不需要理解这一点,但是了解不同的Protocol Buffer格式如何影响编码消息的大小会非常有用. 一条简单的信息 ...
- 九.Protobuf3特殊类型
Protobuf3 Any类型 Any消息类型允许您将消息作为嵌入类型,而不需要它们 .proto定义.Any包含任意序列化的消息(字节),以及一个URL,该URL充当该消息的全局唯一标识符并解析为该 ...
- 浮点数转成字符串函数gcvt()
头文件:#include <stdlib.h> 这三个函数都是将数字转化为字符串,简单区别如下: 1.gcvt()所转换后的字符串包含小数点或正负符号 2.ecvt()的转换结果中不包括十 ...
- lambda 函数的用法
lambda函数又叫匿名函数, 匿名函数就是没有名字的函数,不使用def语句声明的函数.如果要声名,则需要使用lambda关键字进行声明. 一般用来定义简单的函数. 1.声明一个简单的加法匿名函数: ...
- Linux命令:awk求和、平均值、最大最小值
本文链接:https://blog.csdn.net/wyqwilliam/article/details/825600431.求和cat data|awk '{sum+=$1} END {print ...