ElasticSearch 2.0 にアップグレードしていますが、Nest 1.7.0 のマッピングで問題が発生しました。フィールドを共有する 2 つの型があります (同じ形式)。
"@timestamp": {
"type": "date",
"format": "epoch_millis||dateOptionalTime"
}
影響を受けるタイプのいずれかの起動時にマッピングを追加しようとすると (現在PUT
、毎回マッピングを行っています)、次のエラーが返されます。
{
"error": {
"root_cause": [{
"type": "merge_mapping_exception",
"reason": "Merge failed with failures {[mapper [@timestamp] is used by multiple types. Set update_all_types to true to update [format] across all types.]}"
}],
"type": "merge_mapping_exception",
"reason": "Merge failed with failures {[mapper [@timestamp] is used by multiple types. Set update_all_types to true to update [format] across all types.]}"
},
"status": 400
}
hereで説明されているコードベースのマッピングを使用していRaw
ますが、次のようなものを使用してクライアントのプロパティに頼らずに、このメソッドからクエリ文字列をぶら下げる方法がわかりません。
_client.Raw.IndicesPutMapping("ourindex", "ourtype", PutMappingDescriptorObj, parameters => parameters.AddQueryString("update_all_types", null));
Nestの2.0 ブランチを参照しましたが、これらのマッピング呼び出しで update_all_types クエリ文字列パラメーターへの参照が見つかりませんでした。
呼び出しが機能する可能性があると仮定すると、IndicesPutMapping()
現時点ではそれが唯一の選択肢ですか? 代わりに、これらのマッピングを条件付きで追加するだけでよいのではないかと考え始めています。