2) Ray William Johnson's videos: reviews of humour videos.
Когда я делаю запрос «humour», я получаю 1), затем 2).
Когда я делаю запрос «humour video», я получаю только 2).
Когда я делаю запрос «humour | video», Я получаю 1), затем 2), Потому что это просто логическое слияниие результатов.
Но мне нужно сделать некоторый запрос (не юзер-сайд, в отложенном задании, так что можно и на ядрёном SphinxQL) вида «humour video», который отдаст мне 2), затем 1), т.е. результаты нестрогого соответствия ключевикам, но они обязательно должны быть отсортированы по релевантности.
В идеале ещё бы сохранить возможность делать и обычные пользовательские поисковые запросы, и такие нестрогие на одном инстансе, т.е. чтобы не надо было менять конфиги searchd и indexer'а.
Согласен, ошибся. Кворум с 1 по логике идентичен "|". Более того, кворум явным образом преобразовывается в «или» с целью оптимизации (sphinx.cpp, TransformQuorum).
А дальше играют роль ранкеры и понимание релевантности. Например, в приведенном примере под описание автора подходит ранкер wordcount (http://pastebin.com/pwahurUV ), но не факт, что он так же хорошо подойдет на всей выборке, нужно смотреть поведение разных ранкеров на конкретных данных.
да, только хотел написать, результат идентичен.
а вот за wordcount спасибо, он подойдёт в принципе, если поддерживает грамматику. потыкаю на досуге.
а его можно включить параллельно с дефолтным ранкером параллельно (то, что я в последнем абзаце написал)?
> включить параллельно с дефолтным ранкером параллельно
Если в смысле разные ранкеры для разных запросов — да. Ранкер устанавливается для каждого запроса (видно в примере запроса в ссылке на пастебин). Т.е строить отдельный индекс не нужно, все запросы, в которых явно не указан ранкер будут продолжать использовать PROXIMITY_BM25.
Если в рамках одного запроса — нет, не смешиваются.