Как упорядочение по рангу и полям связано друг с другом в поиске Сфинкса? - PullRequest
0 голосов
/ 02 апреля 2019

Предположим, у меня есть такой запрос:

SELECT <somefields>
FROM example
ORDER BY somefield ASC
OPTION ranker=bm25

Это кажется противоречивым. Как это будет сортировать? Только somefield? Или только по рангу BM25? Или оба? Если оба, то что является самым важным? Могу ли я использовать оба типа somefield ASC, rank DESC или rank DESC, somefield ASC? Как вообще отключить сортировку?

1 Ответ

1 голос
/ 02 апреля 2019

Заказ только по некоторому полю . Существует неявное ORDER BY WEIGHT() DESC, но если установить любой порядок, оно полностью переопределяет неявное значение.

... можно использовать вес в мультисортировке, например

ORDER BY somefield ASC, WEIGHT() DESC

В вашем примере запроса фактический рассчитанный вес не будет использоваться. Его не в сортировке, его нет в избранном. На самом деле sphinx может внутренне измениться на рейтинг «none» в любом случае, но может выбрать его явно

OPTION ranker=none

Там нет 'полностью несортированных', не могу сказать ORDER BY NULL или что-то еще.

...