# \_idやfieldに使える文字の制限

**URL:** <https://discuss.elastic.co/t/id-field/121789>\
**Category:** 日本語による質問・議論はこちら\
**Created:** [February 28, 2018, 6:53am UTC](https://discuss.elastic.co/t/id-field/121789 "2018-02-28T06:53:27Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![tsukahara](https://avatars.discourse-cdn.com/v4/letter/t/cab0a1/32.png) [@tsukahara](https://discuss.elastic.co/u/tsukahara)\
**Post date:** [February 28, 2018, 6:53am UTC](https://discuss.elastic.co/t/id-field/121789/1 "2018-02-28T06:53:27Z")

</div>

Elasticsearch6.2.2を使わせていただいております。  
\_idやfieldに使える文字の制限についてどこかに情報ありますでしょうか。

●\_id  
試したところ、登録に使った文字が置き換わって登録されるケースがありました。

以下のデータを登録したところ、

```
PUT ttt/default/あいう
{
  "あいう":"あいう"
}

```

GET ttt/\_search をすると以下が得られました。

```
  {
    "_index": "ttt",
    "_type": "default",
    "_id": "BDF", ←「あいう」が「BDF」に置き換わっている
    "_score": 1,
    "_source": {
      "あいう": "あいう"
    }
  }

```

さらに以下を登録すると、「\_id = あいう」のデータが上書きされました。

```
PUT ttt/default/BDF
{
  "BDF":"BDF"
}

```

また以下のリクエストでは同じデータが取得されました。

```
GET ttt/default/あいう
GET ttt/default/BDF

```

●field  
fieldという呼び方が正しいのかわからないのですが、  
登録するデータの "name":"value"の、nameに使える文字の制限を知りたいです。

---

<div class="post-metadata">

**Author:** ![tsgkdt](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/tsgkdt/32/39151_2.png) [@tsgkdt](https://discuss.elastic.co/u/tsgkdt)\
**Post date:** [February 28, 2018, 7:25am UTC](https://discuss.elastic.co/t/id-field/121789/2 "2018-02-28T07:25:59Z")

</div>

文字種の制限についてはわかっていませんが、\_idに”あいう"としたいのであれば  
URLエンコードして渡せば \_id: あいう で登録できましたよ。

```auto
PUT ttt/doc/%E3%81%82%E3%81%84%E3%81%86
{
  "あいう": "えお",
  "かきく": "けこ"
}

```

```auto
      {
        "_index": "ttt",
        "_type": "doc",
        "_id": "あいう",
        "_score": 1,
        "_source": {
          "あいう": "えお",
          "かきく": "けこ"
        }
      },

```

無用のトラブルを避ける観点で、2バイトの文字をidやfield名に指定しない方が良いように感じています。

---

<div class="post-metadata">

**Author:** ![tsukahara](https://avatars.discourse-cdn.com/v4/letter/t/cab0a1/32.png) [@tsukahara](https://discuss.elastic.co/u/tsukahara)\
**Post date:** [February 28, 2018, 8:11am UTC](https://discuss.elastic.co/t/id-field/121789/3 "2018-02-28T08:11:56Z")

</div>

tsgkdtさん  
早速の回答ありがとうございます。  
\_idはURLエンコードして扱うことでスラッシュやバックスラッシュや改行なども扱えそうですね。  
\_idとして2バイト文字は扱いたくないのですが、ユーザが任意の文字を入れる可能性があるので制限について知りたいのでした。

fieldについては制限あるかわかりますでしょうか。  
または、制限があるときに回避する方法についても教えてただけると助かります。

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [March 28, 2018, 8:12am UTC](https://discuss.elastic.co/t/id-field/121789/4 "2018-03-28T08:12:05Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
