gpt4 book ai didi

php - 如何为ElasticSearch聚合添加条件(最小/最大)?

转载 作者:行者123 更新时间:2023-12-03 01:20:34 28 4
gpt4 key购买 nike

我想查询我的Elastic-Search以获取仅具有正值的最低价格价格。我的价格也可以为零和-1;所以我不希望我的最小聚合返回0或-1。我知道我应该向查询(或过滤器)添加脚本,但是我不知道如何。我当前的代码:

public function minPriceAggregation($minName, $field = 'price')
{
if ($field) {
$this->aggregation[$minName] = [
'min' => [
'field' => $field
]
];
}
return $this;
}

该查询始终返回-1;我想忽略小于0的值,而我的正值中只有最小值。

就像是:
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;
}

最佳答案

试试这个:

public function minPriceAggregation($minName, $field = 'price')
{
if ($field) {
$this->aggregation[$minName] = [
'min' => [
'script' => [
'source' => 'return Math.max(0, doc["price"].value)'
]
]
];
}
return $this;
}

关于php - 如何为ElasticSearch聚合添加条件(最小/最大)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60372074/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com