前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >7.Elasticsearch请求体查询

7.Elasticsearch请求体查询

作者头像
IT云清
发布2019-01-22 11:13:34
6750
发布2019-01-22 11:13:34
举报
文章被收录于专栏:IT云清IT云清

本文目录:

  • 请求体查询
  • 空查询
  • from 和size
  • 注意get请求

请求体查询

轻量搜索 —query-string search— 对于用命令行进行即席查询(ad-hoc)是非常有用的。 然而,为了充分利用查询的强大功能,你应该使用 请求体 search API, 之所以称之为请求体查询(Full-Body Search),因为大部分参数是通过 Http 请求体而非查询字符串来传递的。

请求体查询 —下文简称 查询—不仅可以处理自身的查询请求,还允许你对结果进行片段强调(高亮)、对所有或部分结果进行聚合分析,同时还可以给出 你是不是想找 的建议,这些建议可以引导使用者快速找到他想要的结果。

空查询

空查询将返回所有索引库(indices)中的所有文档:

代码语言:javascript
复制
GET /_search

查询people索引下的user类型的所有文档:

代码语言:javascript
复制
GET people/user/_search

可以在一个、多个或者 _all 索引库(indices)和一个、多个或者所有types中查询:

代码语言:javascript
复制
GET people/user,teacher/_search

from 和size

分页会用到from 和size

代码语言:javascript
复制
GET people/user/_search
{
  "from": 0,
  "size": 2
}
注意get请求:

某些特定语言(特别是 JavaScript)的 HTTP 库是不允许 GET 请求带有请求体的。 事实上,一些使用者对于 GET 请求可以带请求体感到非常的吃惊。

而事实是这个RFC文档 RFC 7231— 一个专门负责处理 HTTP 语义和内容的文档 — 并没有规定一个带有请求体的 GET 请求应该如何处理!结果是,一些 HTTP 服务器允许这样子,而有一些 — 特别是一些用于缓存和代理的服务器 — 则不允许。

对于一个查询请求,Elasticsearch 的工程师偏向于使用 GET 方式,因为他们觉得它比 POST 能更好的描述信息检索(retrieving information)的行为。然而,因为带请求体的 GET 请求并不被广泛支持,所以 search API 同时支持 POST 请求:

代码语言:javascript
复制
POST people/user/_search
{
  "from": 0
  , "size": 2
}

类似的规则可以应用于任何需要带请求体的 GET API。

这种带请求体的语言,方便我们使用Query DSL 来写查询语句。

下一篇:8.Elasticsearch查询表达式Query DSL
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年05月24日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 请求体查询
  • 空查询
  • from 和size
    • 注意get请求:
      • 下一篇:8.Elasticsearch查询表达式Query DSL
      相关产品与服务
      Elasticsearch Service
      腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档