Jede dieser ziemlich geradlinig ist, aber Sie sind wirklich ein paar verschiedene Fragen zu stellen.
Es ist nicht notwendig, jeden Wert explizit aufzurufen, wie Sie es getan haben (obwohl nichts technisch falsch ist). Stattdessen können Sie "einfachere" Fragen stellen und den Abfragebereich steuern, was Sie überhaupt sehen.
Geschlecht 0: durchschnittliche Höhe des Umsatzes Geschlecht 1: durchschnittliche Höhe des Umsatzes
Dies ist eine einfachere Frage werden kann:
Geschlecht N: durchschnittliche Höhe des Umsatzes
{
"size": 0,
"aggs": {
"group_by_gender": {
"terms": {
"field": "gender"
},
"aggs": {
"avg_sales": {
"avg" :{
"field": "amount"
}
}
}
}
}
}
dow Montag: durchschnittliche Höhe des Umsatzes dow tues: durchschnittliche Höhe des Umsatzes dow vermählen: durchschnittliche Höhe des Umsatzes dow thurs: durchschnittliche Höhe des Umsatzes dow Freitag: durchschnittliche Höhe des Umsatzes
Dies kann sich eine einfachere Frage:
dow N, außer Samstag und sonntag: durchschnittliche Höhe des Umsatzes
Unter der Annahme, dow == 0
Sonntag und dow == 6
ist Samstag:
{
"size": 0,
"query": {
"bool" : {
"must_not": [
{
"terms": {
"dow": [0, 6]
}
}
]
}
},
"aggs": {
"group_by_dow": {
"terms": {
"field": "dow",
"size": 5
},
"aggs": {
"avg_sales": {
"avg": {
"field": "amount"
}
}
}
}
}
}
schließlich einfach die letzte weiteren Filter auf diese Frage fügt hinzu:
UND Alter 18-24 UND weiblich
Ich nehme an, dass die AND female
für alle von ihnen kopiert werden sollte, weil so beantwortet wurde:
{
"size": 0,
"query": {
"bool" : {
"must_not": [
{
"terms": {
"dow": [0, 6]
}
}
],
"filter": [
{
"term": {
"gender": 1
}
},
{
"range": {
"age": {
"gte": 18,
"lte": 24
}
}
}
]
}
},
"aggs": {
"group_by_dow": {
"terms": {
"field": "dow",
"size": 5
},
"aggs": {
"avg_sales": {
"avg": {
"field": "amount"
}
}
}
}
}
}
Sie haben bereits die stats
Aggregation entdeckt, aber Sie fragen nur nach dem Durchschnitt, so dass die Verwendung der spezifischeren avg
Aggregation keine Zeit mit der Durchführung von Berechnungen verschwendet, die Ihnen egal sind.
Sie werden auch über die Unterschiede zwischen den query context and the filter context lesen wollen zu verstehen, warum ich filter
statt must
oben verwendet (im Grunde, Filter zwischengespeichert werden kann und sie punkten nicht, sie „ja oder nein“ Fragen nur beantworten , was du hier willst).
danke! das ist toll! Dies ist, was ich mache BTW http://i.imgur.com/1C0Klb8.png –
Ordentlich. Stellen Sie sicher, dass Sie Kibana nicht unnötigerweise neu implementieren! – pickypg
oh wow danke pickypg Ich habe gerade Kibana installiert und es ist erstaunlich. Dies ist eine großartige SO-Erfahrung. Ich frage mich, warum meine ursprüngliche Frage abgelehnt wurde. Ich fühlte ein RTFM-Gefühl von dieser Abstimmungsabstimmung, aber ich tat es (lies das Handbuch) und hatte immer noch eine Frage. Ich denke, SO sollte SO so funktionieren. Enthülle dich selbst und erkläre! :) –