在Elasticsearch的所有可用索引中搜索特定的文档ID

时间:2019-10-28 09:08:48

标签: elasticsearch logstash

是否有可能在所有可用索引中搜索特定的文档ID。 /_all/_search/返回所有文档,但我以/_all/_search/?q=<MYID>的身份尝试过,或者  /_all/_search/_id/<MYID>

但是我没有任何文件。

如果Elasticsearch不支持此任务,我们将如何完成此任务?该用例是基于Logstash和Elasticsearch的集中式日志系统,具有多个不同运行服务的索引。

2 个答案:

答案 0 :(得分:2)

您可以使用terms查询。使用_all搜索所有索引。请参考here

这是我使用的请求

curl -XGET "http://localhost:9200/_all/_search" -H 'Content-Type: application/json' -d'
{
  "query": {
    "terms": {
      "_id": [
        "4ea288f192e2c8b6deb3cee00d7b873b",
        "dcc2b9c4fb6d14b2d41dbc5fee801af3"
      ]
    }
  }
}'

_id是文档的ID

答案 1 :(得分:0)

您可以使用multi get API 您将需要传递索引名称,它不适用于所有索引

GET /_mget
{
    "docs" : [
        {
            "_index" : "index1",
            "_id" : "1"
        },
        {
            "_index" : "index2",
            "_id" : "1"
        }
    ]
}