gpt4 book ai didi

elasticsearch - 将动态值传递给 Elasticsearch 中的脚本查询

转载 作者:行者123 更新时间:2023-11-29 02:48:39 25 4
gpt4 key购买 nike

我的索引中有两个映射。其中之一以不同的货币存储一些金额,其他存储当前的兑换率。每个中的记录如下所示:

http://localhost:9200/transactions/amount
[{
_index: "transactions",
_type: "amount",
_id: "AVA3fjawwMA2f8TzMTbM",
_score: 1,
_source: {
balance: 1000,
currency:"usd"
}
},
{
_index: "transactions",
_type: "amount",
_id: "AVA3flUWwMA2f8TzMTbN",
_score: 1,
_source: {
balance: 2000,
currency:"inr"
}
}]

http://localhost:9200/transactions/conversions
{
_index: "transactions",
_type: "conversions",
_id: "rates",
_score: 1,
_source: {
"usd": 1,
"inr":62.6
}
}

我想查询来自 amount 的数据,并在单个查询中应用来自 conversions 的当前转化率并获得结果。

我尝试使用脚本查询并能够根据传递的参数转换数据,例如:

GET _search
{
"query": {
"match_all": {}
},
"script_fields" : {
"test1" : {
"script" : "_source.balance * factor",
"params" : {
"factor" : 63.2
}
}
}
}

但是在我的例子中,传递的参数是从另一个查询的结果中获取的。

我想在 Kibana 中以通用货币可视化我的数据。 Kibana 支持脚本查询。据我所知,Kibana 中的所有可视化都可以对应于单个 Elasticsearch 查询,因此我没有执行多个查询的选项。

我还尝试探索使用 https://www.elastic.co/blog/terms-filter-lookup 的可能性并向结果集中的每个文档添加一些动态字段。但是我不认为术语过滤器允许这样做。

最佳答案

假设您尝试始终以美元绘制交易,您可以尝试 the accepted answer here 中描述的方法:

本质上:

  1. 为您的数据父子模型建模,每个 conversions 文档都是相同外币的所有子 transactions 文档的父文档。 (并且 conversions 具有标准字段名,例如 "conversion_divisor": 62.6)
  2. 包括所有相关货币转换的 has_parent 查询子句。
  3. 使用function_score (script_score) 查询获取每个父项中的外币倍数,并通过除以每个交易生成一个_score外币交易金额conversion_divisor
  4. 在 Kibana 中绘制 _score

关于elasticsearch - 将动态值传递给 Elasticsearch 中的脚本查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32951913/

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