Почему у Сфинкса нет BM25 с полевым весом? - PullRequest
0 голосов
/ 15 марта 2019

Формула для Sphinx по умолчанию, SPH_RANK_PROXIMITY_BM25 выглядит так:

SPH_RANK_PROXIMITY_BM25 = sum(lcs*user_weight)*1000+bm25

Самая длинная общая подпоследовательность вычисляется для каждого поля отдельно, а затем умножается на user_weight. Однако bm25 - это переменная всего документа, которая не учитывает пользовательские поля. Почему это так?

1 Ответ

1 голос
/ 15 марта 2019

Просто потому, что это быстрее и во многих случаях качество достаточно. Там есть пользовательский ранкер и bm25f. Длина документа также не учитывается по умолчанию, для индексации требуется index_field_lengths = 1.

...