Я пытаюсь получить sum
полей price
и price_department
.Сумма Elasticsearch возвращает округленное целочисленное значение поля float
отображение является:
'completed_order' => [
'properties' => [
'driver_id' => [
'type' => 'integer',
'index' => 'not_analyzed',
],
'order_id' => [
'type' => 'integer',
'index' => 'not_analyzed',
],
'price' => [
'type' => 'float',
'index' => 'not_analyzed',
],
'price_department' => [
'type' => 'float',
'index' => 'not_analyzed',
],
],
],
Проблема состоит в том, что сумма price_department
представляет собой целое значение. Я также попытался получить статистику этого поля. Результат:
...'_source' =>
array (size=6)
'driver_id' => int 4469
'price' => float 5.99
'order_id' => int 2200676
'price_department' => float 5.99...
...'total_price' =>
array (size=1)
'value' => float 5.99
'department_price' =>
array (size=1)
'value' => float 5
'department_price_stats' =>
array (size=5)
'count' => int 1
'min' => float 5
'max' => float 5
'avg' => float 5
'sum' => float 5
aggs
из body
является:
'aggs' => [
'drivers' => [
'terms' => ['field' => 'driver_id','size' => 0,],
'aggs' => [
'total_price' => ['sum' => ['field' => 'price',],],
'department_price' => ['sum' => ['field' => 'price_department',],],
'department_price_stats' => ['stats' => ['field' => 'price_department',],],
],
],
],
Как вы можете видеть, sum
из price
выглядит правильно, но sum
и stats
из price_department
округляется и возвращается как целое число.
Пожалуйста, уточните свой вопрос с реальным отображением, которое у вас есть в вашем индексе, т. Е. После того, как вы заработаете 'curl -XGET localhost: 9200/index' – Val
Как-то цена поля удваивается, а price_департамент длинный. Почему они могут быть изменены? – Justin
Трудно сказать, не зная, как вы создали свой индекс и проиндексировали документы. – Val