Spec-Zone.ru › Elasticsearch 7
›Elasticsearch Руководство [7.17] ›REST API ›API поиска

API фрагментов поиска

Возвращает индексы и фрагменты, на которых будет выполняться запрос поиска.

GET /my-index-000001/_search_shards

Запрос

GET /<target>/_search_shards

Предварительные условия

  • Если включены функции безопасности Elasticsearch, у вас должна быть роль view_index_metadata или manage права доступа к индексу для целевого потока данных, индекса или псевдонима.

Описание

API фрагментов поиска возвращает индексы и фрагменты, на которых будет выполняться запрос поиска. Это может быть полезной информацией для выявления проблем или планирования оптимизаций с использованием маршрутизации и предпочтений фрагментов. При использовании отфильтрованных псевдонимов фильтр возвращается в рамках раздела indices.

Параметры пути

<target>
(Необязательно, строка) Список потоков данных, индексов и псевдонимов для поиска, разделенных запятыми. Поддерживаются подстановочные знаки (*). Чтобы выполнить поиск по всем потокам данных и индексам, опустите этот параметр или используйте * или _all.

Параметры запроса

allow_no_indices

(Необязательно, логическое значение) Если false, запрос возвращает ошибку, если какой-либо подстановочный символ, псевдоним индекса или значение _all направлены только на отсутствующие или закрытые индексы. Это поведение применимо даже если запрос направлен на другие открытые индексы. Например, запрос, направленный на foo*,bar*, возвращает ошибку, если индекс начинается с foo, но ни один индекс не начинается с bar.

По умолчанию true.

expand_wildcards

(Необязательно, строка) Тип индекса, с которым могут совпадать подстановочные знаки. Если запрос может нацеливаться на потоки данных, этот аргумент определяет, будут ли подстановочные знаки соответствовать скрытым потокам данных. Поддерживаются значения, разделенные запятыми, такие как open,hidden. Допустимые значения:

all
Соответствие любому потоку данных или индексу, включая скрытые.
open
Соответствие открытым, не скрытым индексам. Также соответствует любому не скрытому потоку данных.
closed
Соответствие закрытым, не скрытым индексам. Также соответствует любому не скрытому потоку данных. Потоки данных не могут быть закрыты.
hidden
Соответствие скрытым потокам данных и скрытым индексам. Должен быть объединен с open, closed или обоими.
none
Подстановочные знаки не принимаются.

По умолчанию open.

ignore_unavailable
(Необязательно, логическое значение) Если false, запрос возвращает ошибку, если он направлен на отсутствующий или закрытый индекс. По умолчанию false.
local
(Необязательно, логическое значение) Если true, запрос извлекает информацию только с локального узла. По умолчанию false, что означает, что информация извлекается с узла-мастера.
preference
(Необязательно, строка) Указывает узел или фрагмент, на котором должна быть выполнена операция. По умолчанию случайный.
routing
(Необязательно, строка) Пользовательское значение, используемое для маршрутизации операций на определенный фрагмент.

Примеры

GET /my-index-000001/_search_shards

API возвращает следующий результат:

{
  "nodes": ...,
  "indices" : {
    "my-index-000001": { }
  },
  "shards": [
    [
      {
        "index": "my-index-000001",
        "node": "JklnKbD7Tyqi9TP3_Q_tBg",
        "primary": true,
        "shard": 0,
        "state": "STARTED",
        "allocation_id": {"id":"0TvkCyF7TAmM1wHP4a42-A"},
        "relocating_node": null
      }
    ],
    [
      {
        "index": "my-index-000001",
        "node": "JklnKbD7Tyqi9TP3_Q_tBg",
        "primary": true,
        "shard": 1,
        "state": "STARTED",
        "allocation_id": {"id":"fMju3hd1QHWmWrIgFnI4Ww"},
        "relocating_node": null
      }
    ],
    [
      {
        "index": "my-index-000001",
        "node": "JklnKbD7Tyqi9TP3_Q_tBg",
        "primary": true,
        "shard": 2,
        "state": "STARTED",
        "allocation_id": {"id":"Nwl0wbMBTHCWjEEbGYGapg"},
        "relocating_node": null
      }
    ],
    [
      {
        "index": "my-index-000001",
        "node": "JklnKbD7Tyqi9TP3_Q_tBg",
        "primary": true,
        "shard": 3,
        "state": "STARTED",
        "allocation_id": {"id":"bU_KLGJISbW0RejwnwDPKw"},
        "relocating_node": null
      }
    ],
    [
      {
        "index": "my-index-000001",
        "node": "JklnKbD7Tyqi9TP3_Q_tBg",
        "primary": true,
        "shard": 4,
        "state": "STARTED",
        "allocation_id": {"id":"DMs7_giNSwmdqVukF7UydA"},
        "relocating_node": null
      }
    ]
  ]
}

Указание того же запроса, но теперь со значением маршрутизации:

GET /my-index-000001/_search_shards?routing=foo,bar

API возвращает следующий результат:

{
  "nodes": ...,
  "indices" : {
      "my-index-000001": { }
  },
  "shards": [
    [
      {
        "index": "my-index-000001",
        "node": "JklnKbD7Tyqi9TP3_Q_tBg",
        "primary": true,
        "shard": 2,
        "state": "STARTED",
        "allocation_id": {"id":"fMju3hd1QHWmWrIgFnI4Ww"},
        "relocating_node": null
      }
    ],
    [
      {
        "index": "my-index-000001",
        "node": "JklnKbD7Tyqi9TP3_Q_tBg",
        "primary": true,
        "shard": 3,
        "state": "STARTED",
        "allocation_id": {"id":"0TvkCyF7TAmM1wHP4a42-A"},
        "relocating_node": null
      }
    ]
  ]
}

Из-за указанных значений маршрутизации поиск выполняется только на двух фрагментах.

© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/7.17/search-shards.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API