# Index作成後のmapping情報の変更について

**URL:** <https://discuss.elastic.co/t/index-mapping/161957>\
**Category:** 日本語による質問・議論はこちら\
**Created:** [December 23, 2018, 6:27pm UTC](https://discuss.elastic.co/t/index-mapping/161957 "2018-12-23T18:27:50Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![hmlhmz](https://avatars.discourse-cdn.com/v4/letter/h/b487fb/32.png) [@hmlhmz](https://discuss.elastic.co/u/hmlhmz)\
**Post date:** [December 23, 2018, 6:27pm UTC](https://discuss.elastic.co/t/index-mapping/161957/1 "2018-12-23T18:27:50Z")

</div>

![sample](https://us1.discourse-cdn.com/elastic/original/3X/f/1/f19d740f920e17a27d8f035d29198a1ed76f38a8.png)

添付のようなcsvをjson形式に変換してElasticsearchにアップロードしたいと思っています。A列に日時、B～C列にサーバ名があり、時間毎の値(ここでは例としてCPU使用率)が記載されています。

以下のようなコードでindexを作成し、作成後、mapping情報を変更しようとしたところエラーが出ます。原因と対処法を教えていただけませんでしょうか？

import csv  
import json  
import pandas as pd  
from datetime import datetime as dt  
import elasticsearch  
from elasticsearch import helpers

csvfile = "sample.csv"  
df\_csv = pd.read\_csv(csvfile, encoding = "SHIFT-JIS")  
json\_str = df\_csv.to\_json(orient = 'records')  
json\_objs = json.loads(json\_str)  
url = "[http://localhost:9200](http://localhost:9200)"  
es = elasticsearch.Elasticsearch(url)

### index作成

for json\_obj in json\_objs:  
mybody = json\_obj  
es.index(index = myindex, doc\_type = "collected\_data", body = mybody)

### 上記はエラーは出ずに正常に処理されます。(Elasticsearchへ登録されたデータがkibana側で確認できる)

### しかし、以下を実行すると、下記「■エラーメッセージ」のようなメッセージが出てしまいます。やりたい事はpythonのコードから日時(DateTime)をDate情報として認識させたい事です。今文字列としてkibanaが認識してしまってます。

mapping = {  
"properties": {  
"DateTime": {  
"type": "date",  
"format":"yyyy-MM-dd HH:mm:ss"  
}  
}  
}

es.indices.put\_mapping(index = myindex, doc\_type = "collected\_data", body = mapping)

■エラーメッセージ  
RequestError: RequestError(400, 'mapper\_parsing\_exception', 'Root mapping definition has unsupported parameters:  
[mapping : {collected\_data={properties={DateTime={type=date, format=yyyy-MM-dd HH:mm:ss}}}}]')

---

<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 23, 2018, 11:13pm UTC](https://discuss.elastic.co/t/index-mapping/161957/2 "2018-12-23T23:13:05Z")

</div>

こんにちわ

手元の環境(Es6.5.4）では、状況が再現しないため  
今回は、マッピングが作成できない、ということですので、問題の切り分けのためにも、  
データ投入をせずに、indexの作成とマッピングの作成だけをやってみてはいかがでしょう？

具体的にいうと、データ投入によってindexとmappingを暗黙的に作成するのではなく、  
明示的にcreateとput\_mappingしてみてはどうでしょうか。

手元の環境では以下でマッピングが期待通り作成されています。

```python
# マッピング定義
mapping = {
    "properties": {
        "DateAndTime": {
            "type": "date",
            "format":"yyyy-MM-dd HH:mm:ss"
        }
    }
}

myindex = 'forum1224'
# indexの作成
es.indices.create(index=myindex)
# マッピングの作成
es.indices.put_mapping(index=myindex, doc_type='collected_data', body=mapping)

```

期待通りにmappingが作成できてから、実際にデータを入れる（es.index(..））していく方が良いと思います。

mappingの定義自体が正しいかを確認するのであれば、KibanaのDevToolsも使えます。

```auto
PUT forum1224
PUT forum1224/_mapping/collected_data
{
  "properties": {
    "DateAndTime": {
      "type": "date",
      "format": "yyyy-MM-dd HH:mm:ss"
    }
  }
}

```

最後に、お使いのElasticsearchやelasticsearch-pyのバージョンなど添えていただければ、他の方の回答をしやすいかと思います。  
よろしくお願いします。

---

<div class="post-metadata">

**Author:** ![hmlhmz](https://avatars.discourse-cdn.com/v4/letter/h/b487fb/32.png) [@hmlhmz](https://discuss.elastic.co/u/hmlhmz)\
**Post date:** [December 24, 2018, 1:58am UTC](https://discuss.elastic.co/t/index-mapping/161957/3 "2018-12-24T01:58:13Z")

</div>

早々のお返事ありがとうございました。  
お陰様で無事データの投入ができました。  
先にindexやmappingを定義してしまえば良かったんですね。

Elasticsearchのバージョンや環境の記載が無く、失礼いたしました。  
こちらの環境は以下です。  
・elasticsearch 6.5.3  
・kibana 6.5.3  
・Windows 10  
・Python 3.6.5(Anaconda)

---

<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 24, 2018, 1:13pm UTC](https://discuss.elastic.co/t/index-mapping/161957/4 "2018-12-24T13:13:40Z")

</div>

参考までにですが、6.5.4ではKibanaとbeatsで「a couple of notable issues」とされる修正が入ってますので、  
検証環境かもしれませんが、最新をお使いいただくと良いように思います。  
躓いたところが既知の不具合だったりすると、時間がもったいないですしね。

> **[Elastic Stack 6.5.4 Released
	  	 | Elastic](https://www.elastic.co/blog/elastic-stack-6-5-4-released)**
>
> Version 6.5.4 of the Elastic Stack has been released today. It contains fixes for a couple of notable issues in Beats and Kibana.

---

<div class="post-metadata">

**Author:** ![hmlhmz](https://avatars.discourse-cdn.com/v4/letter/h/b487fb/32.png) [@hmlhmz](https://discuss.elastic.co/u/hmlhmz)\
**Post date:** [December 24, 2018, 11:02pm UTC](https://discuss.elastic.co/t/index-mapping/161957/5 "2018-12-24T23:02:18Z")

</div>

tsgkdtさん  
ご返信ありがとうございます。  
追加の情報、ありがとうございます。  
後日教えて頂いたバージョンへ移行しようと思います。

---

<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 21, 2019, 11:02pm UTC](https://discuss.elastic.co/t/index-mapping/161957/6 "2019-01-21T23:02:21Z")

</div>

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