首页 > 解决方案 > 可以按count()存储吗?

问题描述

是否可以对聚合的 count() 进行存储?语法选择参数语言语法似乎表明它是,但我可能解释错了。

我的粗略解释:
predefined([expr = (aggr = (count())], bucket(...))

( "predefined" "(" exp "," "(" bucket ( "," bucket )* ")" ")" ) |
exp        ::= ( "+" | "-") ( "$" identifier [ "=" math ] ) | ( math ) | ( aggr )
aggr       ::= ( ( "count" "(" ")" ) |
                 ( "sum" "(" exp ")" ) |
                 ( "avg" "(" exp ")" ) |
                 ( "max" "(" exp ")" ) |

尝试(“表达式'count()'不适用于单次点击。”)

 all(group(predefined(status, bucket["field1"] ) ) each(  
       all(group(predefined(count(), bucket[0,10>, bucket[11,20>)) each(
         output(count() as(count)
       )) 
     ))     

标签: vespa

解决方案


不支持创建预定义的 count() 存储桶(或其他聚合器)。一般来说,计数(即当计数子组而不是命中时)会有点棘手,因为它是作为数据草图跨节点计算的,它们的输出需要被送回以进行分桶。

这是你需要做的事情吗?如果是这样,请在https://github.com/vespa-engine/vespa/issues上为其创建票证


推荐阅读