私はJavaの経験がなく、elasticsearch painless script languageに問題があります。 (痛みのない名前はよく選ばれていない)。次のコードについては弾性検索痛みのないスクリプトエラー
私はエラーを取得する:
{"lang": "painless",
"inline": "float price = doc['newPrice'] > 0.0 ? doc['price']/doc['newPrice'] : 0; _score * params.constant * price",
"params": {"constant": 1.2}}}}
Cannot apply [>] operation to types [org.elasticsearch.index.fielddata.ScriptDocValues.Doubles] and [java.lang.Double].
私は同じエラーで(フロート)DOC [ 'newPrice']> 0でfloatとしてそれをキャストする結びました。
は、その後、私は"Double price = ((Double)doc['discountPrice'] > 0.0) ? doc['price']/doc['discountPrice'] : 0; _score * params.constant * price",
に変更し、受信した:誰かが私を助けることができる
'Cannot cast from [Double] to [double].'
を、エラーの似たようなものでバリエーションの多くを試してみました。 痛みのない言語...
以降を使用する必要があります
異なっている:
スクリプトは、代わりにこのようにする必要がありますフィールド値にアクセスします。代わりにこれを試すことができます: 'double price = doc ['newPrice']。value> 0.0? doc ['price']。value/doc ['newPrice']。値:0; _score * params.constant * price' – Val
うわー。ドキュメントの中でどこで値を見つけましたか?答えとして追加してください。それは正しいです。 –
これが記載されているドキュメントへのリンクを追加しました。 – Val