私は文字列として保存したいbirth_datesをいくつか持っています。データのクエリや分析を行う予定はありません。ただ保存したいだけです。Elasticsearch 2.3 putマッピング(日付フィールドタイプを無効にしようとしています)エラー
与えられた入力データはさまざまなランダムフォーマットであり、一部には(approximate)
などの文字列も含まれています。 Elasticは、これが日付書式の日付フィールドでなければならないと判断しました。これは、弾性が1981 (approx)
のような日付を受け取ったときに、それがフリークアウトし、入力が無効な形式であると言います。
入力日付を変更する代わりに、日付の種類を文字列に変更したいとします。
私はドキュメントを見て、PUT
マッピングAPIを使ってマッピングを更新しようとしていますが、エラスティックは解析エラーを返し続けます。ここでのドキュメントに基づいて
:
https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-put-mapping.html
私が試してみました:
PUT /sanctions_lists/eu_financial_sanctions/_mapping
{
"mappings":{
"eu_financial_sanctions":{
"properties": {
"birth_date": {
"type": "string", "index":"not_analyzed"
}
}
}
}
}
が、リターンを:
質問概要
elasticsearchの自動的に決定された日付フィールドを無視して、文字列をフィールドタイプとして強制することはできますか?
NOTE
私がリクエスト
を送信するためにGoogle Chromeのセンスプラグインを使用してい弾性検索のバージョンが2.3
アイブちょうど試みた 'PUT/sanctions_lists/_mapping'は別のエラー'だ 「検証は失敗しました:1:マッピングタイプが欠落しているが、」 '私はそれのようにそれを保存しようと文句を言わない「_mapping」含まれていない場合ドキュメント? –
なぜ 'PUT/sanctions_lists'を使用できないのですか?答えに例を示すリンクを入れました。 – pkhlop
新しいタイプを追加する方法があるためです。私は既存のフィールドを更新したいと思っています。私は "タイプ"を持っています: "index_already_exists_exception"、 リンクされた例を使用しました: 'PUT/sanctions_lists/_mapping/eu_financial_sanctions'とエラー' 'type": "illegal_argument_exception"、 "reason": "mapper [birth_date]の異なるタイプ、current_type [date]、merged_type [string] "' –