0
インデックスに既存のフィールド(response
)の新しいmulti field
(raw
)を追加しました。新しいマルチフィールドraw
にはデータがないため、私は以下のようにソースからデータを追加しようとしました。update_by_queryマルチフィールド
POST /y_metrics/response/_update_by_query
{
"script":{
"inline": "ctx._source.response['raw'] = ctx._source.response;"
},
"query": {
"match_all": {}
}
}
は失敗します。
"type": "missing_property_exception",
"reason": "No such property: raw for class: java.lang.String"
第二試み:
POST /y_metrics/response/_update_by_query
{
"script":{
"inline": "ctx._source['response.raw'] = ctx._source.response;"
},
"query": {
"match_all": {}
}
}
は失敗します。
"type": "mapper_parsing_exception",
"reason": "Field name [response.raw] cannot contain '.'"
明らかに、問題は「。」のためにあるようです。しかし、他の人がこの場合にmulti field
にアクセスするにはどうすればよいでしょうか?私は約de_dot
フィルタを読む私の場合に役立ちますか?
ありがとうございました。もし私が 'reindex'すれば新しいインデックスを作成しませんか?インデックス名をそのまま保持したいからです。ですから、 'script'を使わずにクエリを実行するだけで、' reindex'と同じことができますか? – ulab
reindex update_by_queryの唯一の違いは、再インデックスを使用して別のインデックスにインデックスを付け、クエリで更新できないという事実です。 – alr
ありがとうございました。 'update_by_query'を' script'なしで実行した後、より多くの結果を見ることができます。 – ulab