The idea is to create limit for Filter function.
It would work like: Iterate over data until limit is reached, then break the loop.
For example:
q.Filter(
[1, 2, 3,4,5],
q.Lambda(
'i',
q.GT(0,q.Var('i'))),
3 //limit is here
)
would return just
[1,2,3]
The problem is that when someone would iterated over 100,000 results he would have filter activated for each item in index.
Limit would reduce that until there’s satisfying number of items returned.