Spec-Zone.ru › Elasticsearch 7
›Elasticsearch Guide [7.17]

Псевдонимы

Псевдоним — это второе имя для группы потоков данных или индексов. Большинство API Elasticsearch принимают псевдоним вместо имени потока данных или индекса.

Вы можете изменить потоки данных или индексы псевдонима в любое время. Если вы используете псевдонимы в запросах Elasticsearch вашего приложения, вы можете повторно индексировать данные без простоев или изменений в коде вашего приложения.

Типы псевдонимов

Существует два типа псевдонимов:

  • Псевдоним потока данных указывает на один или несколько потоков данных.
  • Псевдоним индекса указывает на один или несколько индексов.

Псевдоним не может указывать на потоки данных и индексы одновременно. Также нельзя добавить базовый индекс потока данных к псевдониму индекса.

Добавление псевдонима

Чтобы добавить существующий поток данных или индекс к псевдониму, используйте действие API псевдонимов add. Если псевдоним не существует, запрос создаст его.

POST _aliases
{
  "actions": [
    {
      "add": {
        "index": "logs-nginx.access-prod",
        "alias": "logs"
      }
    }
  ]
}

Параметры API index и indices поддерживают подстановочные знаки (*). Шаблоны подстановочных знаков, которые соответствуют как потокам данных, так и индексам, возвращают ошибку.

POST _aliases
{
  "actions": [
    {
      "add": {
        "index": "logs-*",
        "alias": "logs"
      }
    }
  ]
}

Удаление псевдонима

Чтобы удалить псевдоним, используйте действие API псевдонимов remove.

POST _aliases
{
  "actions": [
    {
      "remove": {
        "index": "logs-nginx.access-prod",
        "alias": "logs"
      }
    }
  ]
}

Несколько действий

Вы можете использовать API псевдонимов для выполнения нескольких действий в одной атомарной операции.

Например, псевдоним logs указывает на один поток данных. Следующий запрос меняет поток для псевдонима. Во время этой смены псевдониму logs не требуется время простоя и он никогда не указывает на оба потока одновременно.

POST _aliases
{
  "actions": [
    {
      "remove": {
        "index": "logs-nginx.access-prod",
        "alias": "logs"
      }
    },
    {
      "add": {
        "index": "logs-my_app-default",
        "alias": "logs"
      }
    }
  ]
}

Добавление псевдонима при создании индекса

Также можно использовать компонент компонента или шаблон индекса шаблона индекса, чтобы добавить псевдонимы индекса или потока данных при их создании.

# Component template with index aliases
PUT _component_template/my-aliases
{
  "template": {
    "aliases": {
      "my-alias": {}
    }
  }
}

# Index template with index aliases
PUT _index_template/my-index-template
{
  "index_patterns": [
    "my-index-*"
  ],
  "composed_of": [
    "my-aliases",
    "my-mappings",
    "my-settings"
  ],
  "template": {
    "aliases": {
      "yet-another-alias": {}
    }
  }
}

Вы также можете указать псевдонимы индексов в запросах создания индекса.

# PUT <my-index-{now/d}-000001>
PUT %3Cmy-index-%7Bnow%2Fd%7D-000001%3E
{
  "aliases": {
    "my-alias": {}
  }
}

Просмотр псевдонимов

Чтобы получить список псевдонимов вашего кластера, используйте API получения псевдонима get alias API без аргументов.

GET _alias

Укажите поток данных или индекс перед _alias, чтобы просмотреть его псевдонимы.

GET my-data-stream/_alias

Укажите псевдоним после _alias, чтобы просмотреть его потоки данных или индексы.

GET _alias/logs

Запись в индекс

Вы можете использовать is_write_index для указания индекса или потока данных записи для псевдонима. Elasticsearch направляет все запросы записи для псевдонима в этот индекс или поток данных.

POST _aliases
{
  "actions": [
    {
      "add": {
        "index": "logs-nginx.access-prod",
        "alias": "logs"
      }
    },
    {
      "add": {
        "index": "logs-my_app-default",
        "alias": "logs",
        "is_write_index": true
      }
    }
  ]
}

Если псевдоним указывает на несколько индексов или потоков данных и is_write_index не задан, псевдоним отклоняет запросы на запись. Если псевдоним индекса указывает на один индекс и is_write_index не задан, индекс автоматически выступает в качестве индекса записи. Псевдонимы потоков данных не автоматически устанавливают поток данных записи, даже если псевдоним указывает на один поток данных.

Рекомендуется использовать потоки данных для хранения данных временных рядов с добавлением только новых значений. Если вам необходимо обновлять или удалять существующие данные временных рядов, вы можете выполнить операции обновления или удаления непосредственно в базовом индексе потока данных. Если вы часто отправляете несколько документов с использованием того же _id, ожидая последней записи, вы можете использовать псевдоним индекса с индексом записи. См. Управление данными временных рядов без потоков данных.

Фильтр псевдонима

Параметр filter использует Query DSL для ограничения документов, к которым может получить доступ псевдоним.

POST _aliases
{
  "actions": [
    {
      "add": {
        "index": "my-index-2099.05.06-000001",
        "alias": "my-alias",
        "filter": {
          "bool": {
            "filter": [
              {
                "range": {
                  "@timestamp": {
                    "gte": "now-1d/d",
                    "lt": "now/d"
                  }
                }
              },
              {
                "term": {
                  "user.id": "kimchy"
                }
              }
            ]
          }
        }
      }
    }
  ]
}

Маршрутизация

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

POST _aliases
{
  "actions": [
    {
      "add": {
        "index": "my-index-2099.05.06-000001",
        "alias": "my-alias",
        "routing": "1"
      }
    }
  ]
}

Используйте index_routing и search_routing для задания различных значений маршрутизации для индексирования и поиска. При указании эти параметры перезаписывают значение routing для соответствующих операций.

POST _aliases
{
  "actions": [
    {
      "add": {
        "index": "my-index-2099.05.06-000001",
        "alias": "my-alias",
        "search_routing": "1",
        "index_routing": "2"
      }
    }
  ]
}

Удаление индекса

Чтобы удалить индекс, используйте действие API псевдонимов remove_index.

POST _aliases
{
  "actions": [
    {
      "remove_index": {
        "index": "my-index-2099.05.06-000001"
      }
    }
  ]
}

© 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/aliases.html

Spec-Zone.ru

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