Я хочу запросить мой Elasti c -Поиск, чтобы получить минимальную цену значений, которые имеют только положительное значение. Мои цены также могут быть нулевыми и -1; поэтому я не хочу, чтобы моя минимальная агрегация возвращала 0 или -1. Я знаю, что мне нужно добавить скрипт в запрос (или фильтр), но я не знаю как. Мой текущий код:
public function minPriceAggregation($minName, $field = 'price')
{
if ($field) {
$this->aggregation[$minName] = [
'min' => [
'field' => $field
]
];
}
return $this;
}
Этот запрос всегда возвращает -1; Я хочу игнорировать значения <0 и иметь только минимальные положительные значения. </p>
Что-то вроде:
public function minPriceAggregation($minName, $field = 'price')
{
if ($field) {
$this->aggregation[$minName] = [
'min' => [
'field' => $field,
'script' => [
'source' => 'return _value > 0 ?: _value' //What's the correct script here??
]
]
];
}
return $this;
}