HEAD
除了使用GET按id获取文档外,还可以通过HEAD来检查文档是否存在。如果存在返回状态码为200,否则为404。
HEAD <index_name>/_doc/<doc_id>
实时
默认情况下GET是实时的,不受索引刷新率的影响。如果一个文档已经更新但还没有刷新,GET API将发出一个刷新调用就地使文档可见,并将自上次刷新以来更改的其他文档也可见。如果想要禁用实时GET,可以将realtime参数设置为false。
源过滤
默认情况下,GET操作返回_source字段的内容,除非使用stored_fields参数,或者禁用了_source字段。通过将参数_source设置为false,可以禁用_source。如果只想返回_source中的部分字段,可以通过设置_source_includes和_source_excludes来包含或过滤部分字段。在检索大型文档时可以节省网络开销。_source_includes和_source_excludes接受逗号分隔的字段列表或通配符表达式。
存储字段
GET操作允许通过传递stored_fields参数来指定一组要返回的存储字段。如果指定的字段没有存储则会被忽略。从文档本身获取的字段值总是以数组返回。只有叶子字段才可以通过stored_fields返回,也就是说如果字段值是对象则不能通过stored_fields返回,否则请求会失败。
源
可以通过_source直接并只获取_source字段的内容。
GET <index_name>/_source/<doc_id>
使用_source同样可以通过HEAD来检查文档是否存在。
HEAD <index_name>/_source/<doc_id>
也可以通过_source_includes和_source_excludes对返回字段进行过滤。
路由
如果在索引时使用了路由,那么在查询文档时需要通过_routing以同样的规则进行路由,否则会获取不到文档。
优先级
控制分片副本执行get请求的优先权。默认情况下,操作是在分片副本之间随机进行的。preference默认为_local(如果可能,优先在本地分配的分片上执行)。
刷新
通过将refresh参数设置为true,可以在get操作之前刷新相关分片并使其可搜索。将其设置为true后,可能会给系统带来沉重的负载,导致索引速度变慢。
版本支持
通过version参数来检索当前版本与指定版本一致的文档。除了版本类型FORCE总是检索文档之外,此行为对于所有版本类型都是相同的。版本类型FORCE是不推荐的。