何も考えず、データを適当に入れていたら、”type”:”illegal_argument_exception”,”reason”:”Rejecting mapping update to [$index_name] as the final mapping would have more than 1 type: [$type1, $type2]”みたいなエラーが返ってきました。$がつく文字列は私がそれぞれ環境によって違うものですが。。。これは何なのか調べてみました。

ElasticSearch6から、1つのindexに対し、複数のマッピングが許容されなくなってる

MySQLでは、同じデータベース内でも、テーブルが違えば構成が違って当たり前なので、当然同じindexであってもタイプが違うのであれば、マッピングは別でいいと思っていて、Mysql感覚でやっていたら、リジェクトされたのです。。。

なので、同じindex内で、複数のmapping_typeは許容されないという認識で今後は考えていかなければいけないようです。

しかも、これはElasticSearch5では許容されていたらしく、6から許容されなくなっているとのことでした。

ちなみに、私は6.8.4で、このような減少が発生しました。

以上、メモまで。別のmapping_typeでいきたいのであれば、別名のindexで作らないといけないとか、めんどくさいですね。

コメント