当前位置: 首页 > >

elasticsearch7.x文档API Get操作相关

发布时间:

HEAD

除了使用GET按id获取文档外,还可以通过HEAD来检查文档是否存在。如果存在返回状态码为200,否则为404。


HEAD /_doc/
实时

默认情况下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 /_source/

使用_source同样可以通过HEAD来检查文档是否存在。


HEAD /_source/

也可以通过_source_includes和_source_excludes对返回字段进行过滤。


路由

如果在索引时使用了路由,那么在查询文档时需要通过_routing以同样的规则进行路由,否则会获取不到文档。


优先级

控制分片副本执行get请求的优先权。默认情况下,操作是在分片副本之间随机进行的。preference默认为_local(如果可能,优先在本地分配的分片上执行)。


刷新

通过将refresh参数设置为true,可以在get操作之前刷新相关分片并使其可搜索。将其设置为true后,可能会给系统带来沉重的负载,导致索引速度变慢。


版本支持

通过version参数来检索当前版本与指定版本一致的文档。除了版本类型FORCE总是检索文档之外,此行为对于所有版本类型都是相同的。版本类型FORCE是不推荐的。



友情链接: