Я пытаюсь получить результаты поиска Elasti c со spesi c, например:
средняя зарплата, по городу, полу
, поэтому я проверяю на metrics_aggregations
, и я смог
AvgAggregationBuilder totalDuration = AggregationBuilders.avg("salaryAvg").field("salary");
вернуть действительно самый высокий уровень - средняя зарплата без указания c fields
Поэтому я попытался использовать subAggregation
AvgAggregationBuilder totalDuration = AggregationBuilders
.avg("salaryAvg").field("salary")
.subAggregation(AggregationBuilders.terms("city").field("gender"));
, но я получил ошибку ниже
Ошибка сервера. 21525 \ nElasticsearchStatusException [Исключение Elasticsearch [тип = aggregation_initialization_exception, причина = Aggregator [salaryAvg] типа [avg] не может принимать подгруппы]] \ n \ tat org.elasticsearch.rest.BytesRestResponse.errorFromXConten *
1025 * * как я могу запросить его с помощью elasti c искать то, что я хочу, что-то очень похожее на SQL - группировать по
каждая строка моих данных ответа elasti c выглядит так:
widgetResponse.getHits().getHits()[0].getSourceAsMap().get("attributes")
{HashMap$Node@53898} "city" -> "new York"
{HashMap$Node@53899} "pageId" -> "123"
{HashMap$Node@53900} "salary" -> "45765"
{HashMap$Node@53900} "gender" -> "female"
{HashMap$Node@53901} "userId" -> "324"
{HashMap$Node@53902} "accountId" -> "456"
widgetResponse.getHits().getHits()[1].getSourceAsMap().get("attributes")
{HashMap$Node@53898} "city" -> "new Jersy"
{HashMap$Node@53899} "pageId" -> "123"
{HashMap$Node@53899} "salary" -> "77777"
{HashMap$Node@53900} "gender" -> "female"
{HashMap$Node@53901} "userId" -> "334"
{HashMap$Node@53902} "accountId" -> "999"
Как я могу поддержать его с помощью Elasti c search JAVA API?
Я также пытался
запустить его:
AvgAggregationBuilder totalDuration0 = AggregationBuilders.avg(TOTAL_DURATION_AVG).field(TOTAL_DURATION);
TermsAggregationBuilder totalDuration = AggregationBuilders.terms(TOTAL_DURATION_AVG)
.field(ATTRIBUTES_WIDGET_ID).subAggregation(totalDuration0);
Я получил этот ответ
, кажется, имеет другое среднее значение и сколько строк для каждой строки в этом списке, но я не знаю, на какой «ключ» указывает массив байтов
, но он не соответствует фактическому ключу, который у меня есть, также [ключ], кажется, дублируется с другим средним значением, так что мне здесь не хватает. ?