Поиск определенного идентификатора документа по всем доступным индексам Elasticsearch - PullRequest
0 голосов
/ 28 октября 2019

Есть ли возможность, где мы можем искать конкретный идентификатор документа во всех доступных индексах. /_all/_search/ возвращает все документы, но я попробовал его как /_all/_search/?q=<MYID> или /_all/_search/_id/<MYID>

, но я не получаю никаких документов.

Если Elasticsearch не поддерживает это, как мы добьемся этого? эта задача ? Вариант использования - это централизованная система журналов, основанная на Logstash и Elasticsearch, имеющая несколько индексов разных запущенных сервисов.

Ответы [ 2 ]

2 голосов
/ 29 октября 2019

Вы можете использовать для этого запрос terms. Используйте _all для поиска по всем индексам. Пожалуйста, укажите здесь

вот запрос, который я использовал

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

_id - идентификатор документа

0 голосов
/ 28 октября 2019

Вы можете использовать multi get api. Вам нужно будет передать имя индекса, оно не будет работать для всех индексов

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