ES6からES7へマイグレーションしていて
ES6のときからライトに使用していたので、アプリケーションの修正点は少なかったが、まとめておく
typeがindexがなくなる
template作成時に以下のようにmappingsの下にitemというtypeを作っていたが、ES7からtypeがなくなるので変更する必要がある
/_template/my-index-template
{
"index_patterns": "twitter",
"order": 0,
"settings": {
"number_of_shards": 1,
"number_of_replicas": 2
},
"mappings": {
"item": {
...
}
}
}
検索の時なども
/twitter/item/_search
ではなく、
/twitter/_search
になる
Javaでの変更点
elasticsearch-rest-high-level-clientを使っている場合は以下が変更点となる
Before
IndexRequest indexReq = new IndexRequest(MY_INDEX, "item", myIndex.getId().getValue());
After
IndexRequest indexReq = new IndexRequest(MY_INDEX);
indexReq.id(myIndex.getId().getValue());
typeがあるindexをES7へrestore
これは特に何もせずできた
逆にES7でもtypeを保持しておきたい場合はinclude_type_name=true オプションをつけてあげればよいみたい