4000", "pa-6ren">
gpt4 book ai didi

elasticsearch - Elasticsearch脚本查询按字段值获取参数

转载 作者:行者123 更新时间:2023-12-03 00:10:33 27 4
gpt4 key购买 nike

我正在尝试使用脚本查询过滤结果。
我可以这样访问带有硬编码字段值的参数值:

"script": "doc['price'].value * params.1000 > 4000",
"params": {"1000": "1.75"}

但是,如果我尝试使用doc获取字段值,则不会进行过滤,并且可以看到所有结果。
    "script": "doc['price'].value * params.doc['rate'] > 4000",
"params": {"1000": "1.75"}

有什么解决方案可以动态获取参数值?

编辑:

字段“费率”只是ID。它是Integer,但不是我需要的值。想法是每次通过参数传递不同的值,而不是频繁更新字段“rate”。希望这是更好的解释...

例:
"script": "doc['price'].value * params.doc['rate'] > 4000",
"params": {
"1000": "1.75",
"1001": "3.75",
"1002": "5"
}

if
'price' == 10 &&
'rate' == 1002
result should be: 10 * 5 > 4000

if
'price' == 10 &&
'rate' == 1001
result should be: 10 * 3.75 > 4000

if
'price' == 7 &&
'rate' == 1000
result should be: 7 * 1.75 > 4000

最佳答案

我假设rateinteger,如果不是这样的话,脚本看起来就不会这样。如果我正确理解了您的过滤条件,那么请纠正我:

 "script": "(doc['price'].value * doc['rate'].value) > 4000", <--replace params with doc
"params": {"1000": "1.75"}

关于elasticsearch - Elasticsearch脚本查询按字段值获取参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41209904/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com