在 Sphinx 搜索中按排名和字段排序如何相互关联?

How do ordering by rank and fields relate to each other in Sphinx search?

假设我有这样的查询:

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

这看起来很矛盾。它将如何排序?仅通过 somefield?还是仅按 BM25 排名?或两者?如果两者都有,那么哪个最重要?我可以同时使用 somefield ASC, rank DESCrank DESC, somefield ASC 吗?我怎样才能完全禁用排序?

仅按某个字段排序。有一个隐式 ORDER BY WEIGHT() DESC,但如果设置任何顺序,它会完全覆盖隐式值。

... 可以选择在 multisort 中使用权重,例如

ORDER BY somefield ASC, WEIGHT() DESC

在您的示例查询中,实际计算的重量不会被使用。它不在排序中,它不在 select 中。事实上,无论如何,sphinx 可能会在内部更改为 'none' 排序器,但可以明确选择它

OPTION ranker=none

没有 'completely unsorted',不能说 ORDER BY NULL 之类的。