エラーの理由
{ 「error」: { 「root_cause」:[
{ 「タイプ」:「mapper_parsing_exception」、 "reason":「フィールド[upload_status]で宣言された型[string]のハンドラーなし」
} ], 「タイプ」:「mapper_parsing_exception」、 "reason":「フィールド[upload_status]で宣言された型[string]のハンドラーなし」 }, 「ステータス」:400
}
私はElasticsearchバージョン6.2.2を使っており、学校のドキュメントに従ってフィールドを作成する際には{"type":"string","index":"not_analyzed"}を使っています。
原因分析
スペルを確認した後、Elasticsearchの新しいバージョンの機能を確認することにしました。なぜなら、以前にヘッドプラグインのインストール方法の穴を踏んでしまったことがあったからです。バージョンの問題で。 案の定、Elasticsearchは5.Xからテキストとキーワードを導入し、キーワードは非セグメンテーションフィールドに適用され、検索時のみ正確にマッチングでき、その時点で文字列は保持されます。
到着6.Xは文字列を完全に取り除く終える。
そのほかにも「index」の値はブール変数のみでなければなりません。
回避策
{"type":"text","index":false}
jsonの修正は以下の通りです:
しかし、新たな誤りは以下の通りです。
{ 「error」: { 「root_cause」:[
{ 「type」: 「illegal_argument_exception」 「理由」:「[レストラン]へのマッピング更新を拒否する。最終的なマッピングは1つ以上のタイプを持つため:[record, info]」
} ], 「type」: 「illegal_argument_exception」 「理由」:「[レストラン]へのマッピング更新を拒否する。最終的なマッピングは1つ以上のタイプを持つため:[record, info]」 }, 「ステータス」:400
} これは以下の理由によるものです:Elasticsearch 6.xにおける大きな変更点で、Mappingは1つの型のみを許可します。 5.xで作成された複数のマッピングタイプのインデックスは、Elasticsearch 6.xで従来通り実行されます。 マッピングタイプはElasticsearch 7.0.0で完全に削除されます。
Elasticsearch 7.xリリース以降、typeURLのパラメータは任意となりました。 例えば、文書のインデックス作成にはもはや文書タイプは必要ありません
リソース:
https://github.com/sirensolutions/sentinl/issues/257
https://www.elastic.co/guide/en/ ... moval-of-types.html
|