# Elasticsearch 1.x から 6.x へ upgrade する際の text/keyword(analyzed/not\_analyzed) の共存方法

**URL:** <https://discuss.elastic.co/t/elasticsearch-1-x-6-x-upgrade-text-keyword-analyzed-not-analyzed/162050>\
**Category:** 日本語による質問・議論はこちら\
**Created:** [December 25, 2018, 7:43am UTC](https://discuss.elastic.co/t/elasticsearch-1-x-6-x-upgrade-text-keyword-analyzed-not-analyzed/162050 "2018-12-25T07:43:06Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![MasakiAndo](https://avatars.discourse-cdn.com/v4/letter/m/a9adbd/32.png) [@MasakiAndo](https://discuss.elastic.co/u/MasakiAndo)\
**Post date:** [December 25, 2018, 7:43am UTC](https://discuss.elastic.co/t/elasticsearch-1-x-6-x-upgrade-text-keyword-analyzed-not-analyzed/162050/1 "2018-12-25T07:43:06Z")

</div>

今までバージョン1.xを使用していましたが、バージョン6.4にアップデートする予定です。  
現在このアップデートの作業中で、index templateを作成する際に、  
1.xのバージョンのindex templateがそのままでは使えないため、  
貴社のドキュメントを確認ながらstringをtextやkeywordに置き換えたりしてアップデート作業を進めているのですが、  
単純にstringをtextやkeywordに置き換えるだけではなくて、  
他にもelasticsearchのバージョンアップに伴って統廃合された機能があるようなので、  
今回このような形で質問させていただきました。  
例えば、バージョン1.xでは以下のようなindex templateが作成することで、 `analyzed/not_analyzed` が共存できました。

```auto
"field_name": {
  "index" : "analyzed",
  "type" : "string",
  "fields" : {
    "full" : {
      "index" : "not_analyzed",
      "type" : "string" 
    }
  }
}

```

バージョン6.xでは `string` 型の`analyzed/not_analyzed` はそれぞれ `text/keyword` 型に置き換わったそうですが、バージョン6.xでこの`text/keyword` 型が共存するフィールドは作成可能でしょうか？  
また、バージョン1.xからバージョン6.xに移行するにあたり、自動でindex templateを変換してくれるサービスはないのか教えていただきたいです。

---

<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:** [December 25, 2018, 8:06am UTC](https://discuss.elastic.co/t/elasticsearch-1-x-6-x-upgrade-text-keyword-analyzed-not-analyzed/162050/2 "2018-12-25T08:06:11Z")

</div>

ご認識の通り、stringはtext( analyzeされるもの）、keyword（されないもの）に代わっています。

例えば  
field\_nameをkuromojiでanalyzedしたものを格納し、  
field\_name.keywordには、analyzedしないものを格納するようなイメージの場合は、以下のようになるかと思います。

```auto
"field_name": {
  "analyzer" : "kuromoji_analyzer",
  "type" : "text",
  "fields" : {
    "keyword" : {
       "type" : "keyword",
       "ignore_above" : 256
    }
  }
}

```

（analyzerでkuromojiを指定していますが、読みかえてください）

移行に関しては、アップグレードガイドが提供されていますが、さすがに1.xは古すぎて載ってませんでした。  
[https://www.elastic.co/products/upgrade\_guide](https://www.elastic.co/products/upgrade_guide)

Breaking Changeを追って理解していく必要があるんじゃないかと予想します。

---

<div class="post-metadata">

**Author:** ![MasakiAndo](https://avatars.discourse-cdn.com/v4/letter/m/a9adbd/32.png) [@MasakiAndo](https://discuss.elastic.co/u/MasakiAndo)\
**Post date:** [December 25, 2018, 8:11am UTC](https://discuss.elastic.co/t/elasticsearch-1-x-6-x-upgrade-text-keyword-analyzed-not-analyzed/162050/3 "2018-12-25T08:11:54Z")

</div>

> [@tsgkdt](#):
>
> kuromoji\_analyzer

お返事ありがとうございます。  
`kuromoji_analyzer` のようなanalyzerの指定が必要になるとは今回初めて知りました。  
確かにに1.xは古すぎて中々検索しても出てこないので、苦労しました。  
早速、試してみようと思います。

---

<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:** [December 25, 2018, 9:25am UTC](https://discuss.elastic.co/t/elasticsearch-1-x-6-x-upgrade-text-keyword-analyzed-not-analyzed/162050/4 "2018-12-25T09:25:50Z")

</div>

analyzerは必須項目ではないので、指定しないこともできます。  
なので、こういう形でも定義はできます。

```auto
"field_name": {
  "type" : "text",
  "fields" : {
    "keyword" : {
       "type" : "keyword",
       "ignore_above" : 256
    }
  }
}

```

その場合は、indexのデフォルトにされているものか、standardになるみたいですね。  
[https://www.elastic.co/guide/en/elasticsearch/reference/6.5/analyzer.html](https://www.elastic.co/guide/en/elasticsearch/reference/6.5/analyzer.html)

フィールドの中に入るデータ、値と、それをどのようにanalyzeしたいのかによって、適切に選んでいただければよいと思います。

---

<div class="post-metadata">

**Author:** ![MasakiAndo](https://avatars.discourse-cdn.com/v4/letter/m/a9adbd/32.png) [@MasakiAndo](https://discuss.elastic.co/u/MasakiAndo)\
**Post date:** [December 25, 2018, 10:11am UTC](https://discuss.elastic.co/t/elasticsearch-1-x-6-x-upgrade-text-keyword-analyzed-not-analyzed/162050/5 "2018-12-25T10:11:22Z")

</div>

色々とありがとうございます。  
実際に試してみて適切なものを選ぼうと思います。

---

<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:** [January 22, 2019, 10:11am UTC](https://discuss.elastic.co/t/elasticsearch-1-x-6-x-upgrade-text-keyword-analyzed-not-analyzed/162050/6 "2019-01-22T10:11:24Z")

</div>

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