可以对count()进行存储吗?

时间:2019-02-19 17:39:12

标签: vespa

是否可以对聚合的count()进行存储?语法Select parameter language grammar似乎暗示它是正确的,但我可能将其解释为错误。

我的粗略解释:
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)
       )) 
     ))     

1 个答案:

答案 0 :(得分:1)

不支持创建预定义的count()存储桶(或其他聚合器)。一般而言,计数(即计数子组而不是命中时)会有些棘手,因为它是作为数据草图在整个节点上计算的,因此需要将其输出向下发送以进行存储。

这是您需要做的吗?如果是这样,请在https://github.com/vespa-engine/vespa/issues

上为其创建票证