iT邦幫忙

第 12 屆 iT 邦幫忙鐵人賽

DAY 15
0

在前面的旅程中,為了實驗需求,我對 Index 的命名不太上心,結果我把完整的資料建在一個我現在對命名不太滿意的 Index 中,怎麼辧?

更新 Mapping?

在任何領域的菜鳥時期都有一個共同的特徵,就是好傻好天真…。為了嘗試修改 Mapping, 我想用下面的 API , 把 把成交量的 data type 改成 double。

PUT /history-prices-week/_mapping
{
  "properties": {
      "volume" : {
        "type" : "integer"
      }
  }
}

然後會得到一個很直接的 Error (下圖)
https://ithelp.ithome.com.tw/upload/images/20200926/20129624LkbggpurtU.png
原來,一旦 Index 已經添加了 Mapping,就不能進行修改。除了一些描述 Field 的 Mapping Parameters 外。今天暫時不討論這個。

總之,Index 的 Mapping 一旦定了,就不要動它。背後的原因與 Elasticsearch 的資料演算法相關,例如修改 data type ,ES 就得重新運算,這個工,等同於 "reindex"。

更改 Index Name

上面的實驗已經讓我有了不詳預感。更改 Index Name 一定也不是簡單的事。果然,如果要把 Index 重新命名,需要做的事,也是上面提到的 "reindex"。那就來玩玩看吧:

PUT /history-prices-daily 

POST _reindex
{
  "source": {
    "index": "history-prices-python"
  },
  "dest": {
    "index": "history-prices-daily"
  }
}

首先,建立新的 Index,然後執行 reindex。花了一點時間,看來是成功了!
https://ithelp.ithome.com.tw/upload/images/20200926/20129624zrP2DaBspd.png
把 Index info 倒出來看看:

GET /_cat/indices?v

https://ithelp.ithome.com.tw/upload/images/20200926/201296244LNg24W2zf.png
看來資料筆數都一致!
抽查一筆盤後資訊看看:

GET /history-prices-daily/_doc/23172020-09-23

https://ithelp.ithome.com.tw/upload/images/20200926/20129624gBkrHHoqhx.png
沒問題,聞西!
看看舊的 Index , 佔的空間還真不少,既然分手了,就砍了吧!

DELETE /history-prices-python

今天又玩了一個新花招。接下來會花點時間建一些技術指標,這就不寫在鐵人賽裡了,明天開始,可以開始探索 Kibana 的一些視覺化功能啦!


上一篇
[Day14] Index Template
下一篇
[Day16] 選股策略實作 - Multi Index Search
系列文
Elastic 戰台股30

尚未有邦友留言

立即登入留言