как написать пользовательскую функцию ранжирования?

задавал в Slack вопрос: как написать пользовательскую функцию ранжирования?

На вопрос любезно ответит Vytautas Verseckas.
Решил сохранить ответ здесь - т.к. в Slack история пропадает.

Примеры можно найти в документации:
Manticore Search Manual: Functions > Searching and ranking functions#PACKEDFACTORS()

Такой запрос у меня работает:

SELECT id,
       WEIGHT() as `ranker_weight`,
       PACKEDFACTORS({json =1}) as `packedfactors`
FROM eshop
    where match('sams*')
OPTION ranker=expr('sum((word_count+(lcs-1)*max_lcs)*user_weight)');

Примеры также приведены тут:
github

1 Like