This operator calculated a list of top elements regarding a scoring function. Only if the top elements change, an output will be produced. Additionally, the object that triggered the new calculation is send to output
Outputschema is List<TUPLE>, TUPLE
Remark: Use [] or elementAt to access elements in List and in TUPLE
Parameter:
- scoringFunction [Expression]: An expression that must return a numerical value
- k [Integer]: Number of elements that should be treated
- descending [Boolean]: The standardcase is that the higher the score, the higher the rank. Set to false if the lower the score, the lower the rank.
Example:
PARSER PQL
#ADDQUERY
out = TOPK({
k = 10,
scoringfunction = 'price'
},
ELEMENTWINDOW({
size = 5
},
bid
)
)
out2 = MAP({
expressions = [
#LOOP i 0 upto 9
['elementAt(topk[${i}],1)','top_${i+1}_auction'],
['elementAt(topk[0],2)','top_${i+1}_bidder'],
['elementAt(topk[0],4)','top_${i+1}_price'],
#ENDLOOP,
'topk'
],
ALLOWNULL = true,
SUPPRESSERRORS = true
},
out
)