Skip to content
📖0 阅读·🤍0 点赞

查询索引&特定索引

命令展示

java
GET /<index_name>/_search 
GET /_search

可选参数

  • size:单次查询多少条文档,默认为 10
  • from:起始文档偏移量。需要为非负数,默认为0
  • timeout: 指定等待每个分片响应的时间段。如果在超时到期之前未收到响应,则请求失败并返回错误。默认为无超时。

具体命令

java
GET earthquakes/_search

GET /_search

小白比喻👇

想象一下,Elasticsearch 是一个巨大的图书馆。

  1. GET earthquakes/_search earthquakes: 这就像是指定图书馆里的一个特定区域,比如“地震学专区”。 /_search: 这是在说“在这个专区里进行搜索”。 合起来的意思: 只在“地震学专区”(earthquakes索引)里查找所有关于地震的书(文档)。 你只关心这个专区的内容,其他区域(比如“气象学专区”、“地质学专区”)完全不管。
  2. GET /_search /_search: 这是在说“在整个图书馆里进行搜索”。 前面没有指定专区(索引名)合起来的意思: 在整个图书馆(Elasticsearch 集群里的所有索引)里查找所有符合你条件的书(文档)。 不管书在哪个专区(索引),只要符合你的搜索条件,都会被找出来。

总结一下区别:

命令比喻搜索范围实际效果
GET earthquakes/_search“地震学专区” 里找书仅限 earthquakes索引只搜索 earthquakes索引里的数据。
GET /_search整个图书馆 里找书所有索引搜索整个集群里所有索引的数据。

举个栗子:

  • 你想找 所有关于“震级”的记录。 用 GET earthquakes/_search { "query": ... }:你只会得到 earthquakes索引里 关于震级的记录。 用 GET /_search { "query": ... }:你会得到 整个数据库里所有索引 中包含“震级”的记录(比如 earthquakes索引里有,reports索引里某个报告提到震级,news索引里某条新闻提到震级,都会被搜出来)。

简单来说:

  • GET 索引名/_search:精准定位,只在 一个 特定的地方(索引)找东西。
  • GET /_search:广撒网,在 所有 地方(所有索引)找东西。