summaryrefslogtreecommitdiffstats
path: root/lualib/redis_scripts/bayes_stat.lua
blob: 31e51280c7560b61229b22a124133167fc570627 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
-- Lua script to perform bayes stats
-- This script accepts the following parameters:
-- key1 - current cursor
-- key2 - symbol to examine
-- key3 - learn key (e.g. learns_ham or learns_spam)
-- key4 - max users

local cursor = tonumber(KEYS[1])

local ret = redis.call('SSCAN', KEYS[2] .. '_keys', cursor, 'COUNT', tonumber(KEYS[4]))

local new_cursor = tonumber(ret[1])
local nkeys = #ret[2]
local learns = 0
for _, key in ipairs(ret[2]) do
  learns = learns + (tonumber(redis.call('HGET', key, KEYS[3])) or 0)
end

return { new_cursor, nkeys, learns }