ES搜索(一)检索文档

Both HTTP GET and HTTP POST can be used to execute search with body. Since not all clients support GET with body, POST is allowed as well.

搜索可以在多索引,多类型中进行

GET /_search    -- 所有索引中搜索所有的类型
GET /gb/_search    -- 在gb索引中搜索所有的类型
GET /gb,us/_search    -- 在gb和us索引中搜索所有的类型
GET /g*,u*/_search    -- 在任何以 g 或者 u 开头的索引中搜索所有的类型
GET /gb/user/_search    -- 在gb索引中搜索user类型的文档
GET /gb,us/user,tweet/_search    -- 在 gb 和 us 索引中搜索 user 和 tweet 类型
GET /_all/user,tweet/_search    -- 在所有的索引中搜索 user 和 tweet 类型

已知文档的_id

GET /website/blog/123    -- 搜索 website 索引 blog 类型中 id 为 123 的文档
GET /website/blog/123?_source=title,text    -- 返回数据仅包含 title 和 text 属性
HEAD /website/blog/123    -- 检查文档是否存在

搜索结果进行分页,可使用 "from" 和 "size"

GET /_search?size=10&from=30
或使用DSL语句
GET /_search
{
  "from": 30,
  "size": 10
}

除了通过索引、类型、ID进行搜索外:
为搜索增加条件,可使用 "query" 查询
为搜索结果增加排序规则,可使用 "sort" 排序
为搜索结果增加聚合分析,可使用 "aggs" 聚合
对搜索结果增加高亮显示,可使用 "hightlight"

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容