Elasticsearchのインデックスには大文字は含めてはいけない

Elasticsearchのインデックスには大文字は含めてはいけない

どうもこんにちはkoheiです。

最近寒くなってきました。

朝が一番生産性が高いのでもったいないと思いながらも、

起きれないジレンマと戦ってます。

それでは本題、先日に下記のようなツイートをしました。

elasticsearch のインデックスって小文字のみ有効なのか。地味だけど少しハマった笑 公式のドキュメントに書いてるのかな?

Elasticsearchにlogstash経由でデータを投入しようとした際に、なぜかインデックスが投入できずに少しハマりました。

原因はツイートの通り、インデックス名に大文字を使用しているのが原因でした。

今回は、簡単にインデックス名について検証をしたいと思います。

インデックス名に大文字と小文字を含めた場合

私がハマったときはこの場合。

インデックス「Test」を作成しようとした場合は下記のようにエラーになります。

【大文字、小文字を含めた場合】

curl -XPUT http://localhost:9200/Test
{
  "error": {
    "root_cause": [
      {
        "type": "invalid_index_name_exception",
        "reason": "Invalid index name [Test], must be lowercase",
        "index_uuid": "_na_",
        "index": "Test"
      }
    ],
    "type": "invalid_index_name_exception",
    "reason": "Invalid index name [Test], must be lowercase",
    "index_uuid": "_na_",
    "index": "Test"
  },
  "status": 400
}

インデックス名に大文字のみを使用した場合

インデックス「TEST」を作成しようとした場合も下記のようにエラーになります。

【大文字のみ】

curl -XPUT http://localhost:9200/TEST
{
  "error": {
    "root_cause": [
      {
        "type": "invalid_index_name_exception",
        "reason": "Invalid index name [TEST], must be lowercase",
        "index_uuid": "_na_",
        "index": "TEST"
      }
    ],
    "type": "invalid_index_name_exception",
    "reason": "Invalid index name [TEST], must be lowercase",
    "index_uuid": "_na_",
    "index": "TEST"
  },
  "status": 400
}

インデックス名に小文字のみを使用した場合

インデックス「test」を作成しようとした場合は下記のようにインデックスを作成できます

【小文字のみ場合】

curl -XPUT http://localhost:9200/test
{
  "acknowledged" : true,
  "shards_acknowledged" : true,
  "index" : "test"
}

結論

インデックス名は小文字でなければいけない(大文字を含んではいけない)

みなさん、もしインデックス作成できない場合があった際はインデックス名に大文字が含まれていないか確認することをおすすめします。

※ご指摘いただき、公式のドキュメントで記載されている箇所がわかりました!以下URLにLowercase onlyって書いてますね。ありがとうございます!


人気記事:
【最新】Elastic Stack学習におすすめの本5選

Elasticsearchについてのもっと知りたい人向け~関連記事!

全文検索エンジンElasticsearchについてまとめてみました

Elasticsearchの設定方法について簡単に解説

Elasticsearchのバックアップ方法について解説します。(スナップショット、リストア)

Elasticsearchのおすすめ書籍