использовать подстановочный знак в псевдонимах шаблона индекса ElasticSearch - PullRequest
0 голосов
/ 13 марта 2019

Это мой индексный шаблон (упрощенно):

{
  "template": "user-*",
  "mappings" : {
    "ESHOP_USER" : {
      "properties" : {
        "id" : {
          "type" : "long"
        },
        "nickname" : {
          "type" : "text"
        },
        "createTime" : {
          "type" : "keyword"
        },
        "updateTime" : {
          "type" : "keyword"
        }
      }
    }
  },
  "aliases" : {
      "user-test-alias" : {
          "index" : "user-test*"
      },
      "user-prod-alias" : {
          "index" : "user-prod*"
      }
  }
}

Что я хочу сделать:

Индексы с шаблоном имени user-* используют один и тот же шаблон, и я хочу добавить user-test-alias ко всем индексам с шаблоном имени user-test* и user-prod-alias ко всем индексам с шаблоном имени user-prod*.

Что я получил:

С помощью приведенного выше шаблона я получил все индексы с шаблоном имени user-*, получив два псевдонима: user-test-alias и user-prod-alias.

Я знал, что если я разделю этот шаблон для шаблонов test и prod или использую POST /_aliases после создания индексов, я смогу решить проблему. Но есть ли способ достичь моей цели с помощью только одного шаблона индекса?

1 Ответ

1 голос
/ 13 марта 2019

Я бы использовал 3 шаблона:

  • тот, который является общим для обеих сред
  • один для теста (только для псевдонима)
  • один для продукта (только для псевдонима)

Первый шаблон (общий) применяется первым:

{
  "template": "user-*",
  "order": 0,
  "mappings" : {
    "ESHOP_USER" : {
      "properties" : {
        "id" : {
          "type" : "long"
        },
        "nickname" : {
          "type" : "text"
        },
        "createTime" : {
          "type" : "keyword"
        },
        "updateTime" : {
          "type" : "keyword"
        }
      }
    }
  }
}

Второй шаблон (тестовый псевдоним) применяется следующим образом:

{
  "template": "user-test-*",
  "order": 1,
  "aliases" : {
      "user-test-alias" : {
          "index" : "user-test*"
      }
  }
}

Третий шаблон (псевдоним prod) применяется следующим образом:

{
  "template": "user-prod-*",
  "order": 1,
  "aliases" : {
      "user-prod-alias" : {
          "index" : "user-prod*"
      }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...