【发布时间】:2015-11-23 10:29:28
【问题描述】:
我的索引中有两个映射。其中一个以不同货币存储一些金额,其他存储当前转换率。每个中的记录如下所示:
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 中的所有可视化都可以对应于单个弹性搜索查询,因此我无法选择执行多个查询。
我还尝试探索使用https://www.elastic.co/blog/terms-filter-lookup 并向结果集中的每个文档添加一些动态字段的可能性。但是我认为术语过滤器不允许这样做。
【问题讨论】:
-
如果您构建的插件可以访问您存储来自其他查询的数据的数据库,该怎么办?
标签: elasticsearch