我正在尝试根据文档中的值创建动态参数。
我到目前为止在这里尝试过
body: {
"script_fields": {
"potentialIncome": {
"script": {
"lang": "painless",
"source": "doc.rentPrice.value - params['doc.buyingPrice.value']",
"params": {
120000: 1200,
150000: 1500
}
}
}
}
}
这引发了以下错误:
type: 'script_exception',
reason: 'runtime error',
script_stack:
[ 'doc.rentPrice.value - params[\'doc.buyingPrice.value\']',
' ^---- HERE' ],
script: 'doc.rentPrice.value - params[\'doc.buyingPrice.value\']',
lang: 'painless'
我想使参数动态化,以便doc值buyingPrice
确定要扣除的值。
使用ElasticSearch 7.2
一个复杂而糟糕的方法是使用以下脚本
if(doc['buyingPrice'].value==120000){return doc['rentPrice'].value-params['120000']}
else if(doc['buyingPrice'].value==150000){return doc['rentPrice'].value-params['150000']}
Es对象:
{
"took": 2,
"timed_out": false,
"_shards": {
"total": 1,
"successful": 1,
"skipped": 0,
"failed": 0
},
"hits": {
"total": {
"value": 2,
"relation": "eq"
},
"max_score": 1.0,
"hits": [{
"_index": "immo",
"_type": "objects",
"_id": "1",
"_score": 1.0,
"_source": {
"buyingPrice": 120000,
"rentPrice": 500
}
}, {
"_index": "immo",
"_type": "objects",
"_id": "2",
"_score": 1.0,
"_source": {
"buyingPrice": 150000,
"rentPrice": 500
}
}]
}
}
您需要尝试不使用单引号。
"source": "return (params[String.valueOf(doc.buyingPrice.value)] != null) ? doc.rentPrice.value - params[String.valueOf(doc.buyingPrice.value)] : 0",
^ ^
| |
问题内容: 我正在尝试创建一个脚本字段,该脚本字段将计算两个时间戳之间的时间差,然后在该脚本字段上聚合一个。 我首先尝试: 在合计平均值下产生价值。 然后我尝试了: 生成了一条错误消息,内容为:“在映射中找不到[timedifference]的字段” 问题答案: 简单地将脚本移到聚合上怎么样?
问题内容: 我正在尝试对聚合执行以下查询: 并引发以下异常: 任何想法我该如何解决。参考: http://www.elasticsearch.org/guide/zh- CN/elasticsearch/reference/current/search-aggregations-metrics-sum- aggregation.html 问题答案: 默认情况下,elasticsearch中禁用动态
我正在尝试以下关于聚合的查询: 它引发以下异常: 你知道我该怎么解决这个问题吗。参考: http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-aggregations-metrics-sum-aggregation.html
问题内容: 我在尝试了解如何在Django中创建动态选择字段时遇到了一些麻烦。我有一个模型设置类似: 我想做的是创建一个选择字段whos的值是与该骑手相关联的航点(将是登录的人)。 目前,我以如下形式覆盖init: 但是所有要做的就是列出所有路标,它们与任何特定的骑手都没有关联。有任何想法吗?谢谢。 问题答案: 你可以通过将用户传递给表单init来过滤航点 启动表单时从你的角度来看 在模型形式的情
我试图创建一个简单的脚本,通过自定义参数数组过滤嵌套字段数组,通过我的for循环抛出错误。 映射 源(_S) 脚本如下所示: 如果我用一个简单的字符串替换“params['自定义字段'][I]”部分,它工作得很好,所以我猜我的问题就在那里,但不知道到底是什么。 另一个注意事项,知道如何构造我的查询,以便在“_source”中返回来自无痛脚本的结果吗? 最后,我想做这样的事情: 但首先我想让它使用上
问题内容: 我想在每个更新时间将一个对象添加到字段中。 例如,我有一个文档: 下次,我想在测试字段中添加一个对象并保存旧对象。结果是: 如何实现? 编辑 我使用脚本: 但是,我得到了例外: 编辑 现在,我想添加一个字段以确保更新或插入对象。例如: 当我更新字段时,当id存在时,我将更新对象。相反,我将插入对象。 问题答案: 我建议尝试这样的脚本,该脚本在参数中带有两个参数。它将检查任何嵌套对象是否