gpt4 book ai didi

elasticsearch - Elasticsearch动态过滤依据(价格*货币转换率)

转载 作者:行者123 更新时间:2023-12-03 00:15:43 31 4
gpt4 key购买 nike

用户可以使用价格创建一个新实体。价格可以使用不同的货币(EUR,USD ...),因此我们可以乘以(price * convert_rate)得到实际价格。

我想做的是根据价格过滤记录,具体取决于前端用户选择的货币和金额(欧元或美元)。

问题是费率经常变化,所以我无法在每个文档中更新费率。

有没有一种方法可以按数组过滤(使用rate_id => convert_rate),或在查询中按currency_id动态导入convert_rate?像这样:

    {
"query": {
"filtered": {
"filter": {
"script": {
"script": "doc[\"price\"].value * convert_rate > 5"
}
}
}
}
}

编辑:

每个产品都有currency_id。通过currency_id,我想找到convert_rate,然后将其乘以价格。

货币汇率可以在其他文档中也可以在数组中。

也许这可以澄清我需要做什么
    "products" :    {
"properties" : {
"id" : {
"type" : "integer"
},
"currency_id" : {
"type" : "integer"
},
"price" : {
"type" : "double"
}
}
}




{
"query": {
"filtered": {
"filter": {
"script": {
"script": "doc[\"price\"].value > convert_rate",
"params" : {
"convert_rate" : **get.convert_rate.where.currency_id == doc[\"currency_id\"].value**
}
}
}
}
}
}

最佳答案

查看自定义参数-您可以将查询中的所有内容传递给脚本

https://www.elastic.co/guide/en/elasticsearch/reference/2.0/query-dsl-script-query.html

关于elasticsearch - Elasticsearch动态过滤依据(价格*货币转换率),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36100099/

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