Ich habe zwei Zuordnungen in meinem Index. Einer von ihnen speichert einige Beträge in verschiedenen Währungen und anderen Geschäften aktuellen Umrechnungskurs. in jeder Aufzeichnungen wie folgt aussehen:Übergabe des dynamischen Werts an die Skriptabfrage in der Elastic Search
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"
}
}]
und
http://localhost:9200/transactions/conversions
{
_index: "transactions",
_type: "conversions",
_id: "rates",
_score: 1,
_source: {
"usd": 1,
"inr":62.6
}
}
ich die Daten von amount
abfragen möchten und aktuellen Umrechnungskurse von conversions
in einer einzigen Abfrage anwenden und Ergebnis erhalten .
Ich habe versucht, scripted Abfrage mit und war in der Lage, die Daten zu konvertieren, basierend auf übergeben params wie:
GET _search
{
"query": {
"match_all": {}
},
"script_fields" : {
"test1" : {
"script" : "_source.balance * factor",
"params" : {
"factor" : 63.2
}
}
}
}
aber in meinem Fall bestand params aus dem Ergebnis einer anderen Abfrage abgerufen werden soll.
Ich möchte, dass meine Daten in Kibana in gemeinsamen Währung visualisieren. Kibana unterstützt Skriptabfragen. Nach meinem Wissen können alle Visualisierungen in Kibana einer einzelnen elastischen Suchabfrage entsprechen, so dass ich keine Möglichkeit habe, mehrere Abfragen durchzuführen.
Ich versuchte auch, die Möglichkeit zu erkunden https://www.elastic.co/blog/terms-filter-lookup verwenden und das Hinzufügen einiger dynamischen Felder zu jedem Dokument in Ergebnismenge. Ich glaube jedoch nicht, dass Term Filter dies erlaubt.