elasticsearchの私のドキュメントの1つです日付:ElasticSearch:スクリプトのインライン減算はここ
{
"_index": "2017-10-21",
"_type": "cat",
"_id": "14",
"_score": 2.2335923,
"_source": {
"name": "Biscuit",
"breed": "Persian",
"age": "3",
"purchase_date": "2017-11-11T10:16:18+0100",
"birth_date": "2017-01-21T10:16:18+0100"
}
}
私は数分または数日間のために(それらを差し引いて)「PURCHASE_DATE」と「Birth_Dateの」の間の時間を計算したいと思います新しいフィールド 'age_when_bought'をこの時間に追加します(品種が "ペルシア語"のすべてのドキュメントで、ここではその点は重要ではありません)。
POST /*/_update_by_query
{
"script" : {
"inline": "ctx._source.age_when_bought = ctx._source.purchase_date - ctx._source.birth_date"
},
"query": {
"bool": {
"must": [
{
"match": {
"breed": "Persian"
}
}
]
}
}
}
残念ながら、このようには機能しません。私はすでに日付にこれらのフィールドを変換することを試みたが、私はそれを行うには良い機能を使用しない場合があります
"caused_by": {
"type": "class_cast_exception",
"reason": "Cannot apply [-] operation to types [java.lang.String] and [java.lang.String]."
}
:私はその応答でエラー500を持っている
'SimpleDateFormat.parse(ctx._source.purchase_date)'
、私はまだエラーが発生しています今度はその応答を持つ500:
"caused_by": {
"type": "illegal_argument_exception",
"reason": "Unknown call [parse] with [1] arguments on type [SimpleDateFormat]."
}
ありがとうございます!