TL;DR
- 設定のインポート時に _id が変わっちゃう問題がある。(Kibana ver 4.3.1 でも発生)
- ひとまず保存時の設定名に
+
は使わないようにする。
環境
- CentOS 6.7
- Elasticsearch 2.1.1
- Kibana 4.3.1
現象
kibana で My+Search
という名前で検索条件を保存して、それを Visualize で使っていた。
これらの定義を Export Everything
した JSON ファイルをインポートしたら、 Saved Objects: Could not locate that search (id: My Search)
というエラーが発生した。
原因
調べたところ、インポートした My+Search
の _id
が変わってしまっていた。
エクスポート時の My+Search
の _id
は My Search
だった。
Visualize 定義もこの _id
を使っている。
...
}, {
"_index" : ".kibana",
"_type" : "search",
"_id" : "My Search",
"_score" : 1.0,
"_source":{"title":"My+Search","description":"",
...
ところが、インポートした My+Search
の _id
は My-Search
になっていた。
...
}, {
"_index" : ".kibana",
"_type" : "search",
"_id" : "My-Search",
"_score" : 1.0,
"_source":{"title":"My+Search","description":""
...
これにより、Visualize 定義を読み込む際に My Search
が見つからなくてエラーが発生したようだ。
他の怪しそうな記号をいくつか (
, !
, $
, \
, -
, _
) 試してみたが、これらは問題なくインポートできた。
対処
Kibana の Issue でそれらしいものを見つけられなかったが、恐らくバグだと思われるので、拙い英語で Issue を上げておいた。
とりあえずの回避策は kibana 上でのデータ保存時の名前には +
を使わないようにするか、エクスポートした export.json を修正してからインポートする…、かな。