Ranker plugins let you implement a custom ranker that receives all
the occurrences of the keywords matched in the document, and computes a
WEIGHT() value. They can be called as follows:
SELECT id, attr1 FROM test WHERE match('hello') OPTION ranker=myranker('option1=1');The call workflow is as follows:
XXX_init() gets called once per query per index, in the
very beginning. A few query-wide options are passed to it through a
SPH_RANKER_INIT structure, including the user options
strings (in the example just above, “option1=1” is that string).XXX_update() gets called multiple times per matched
document, with every matched keyword occurrence passed as its parameter,
a SPH_RANKER_HIT structure. The occurrences within each
document are guaranteed to be passed in the order of ascending
hit->hit_pos values.XXX_finalize() gets called once per matched document,
once there are no more keyword occurrences. It must return the
WEIGHT() value. This is the only mandatory function.XXX_deinit() gets called once per query, in the very
end.