В SphinxSearch, как сортировать по нескольким факторам (некоторые не связаны с поиском)? - PullRequest
0 голосов
/ 01 июля 2018

Помимо веса, мы также хотели бы учесть некоторые элементы в ранжировании результатов поиска (num_views, цена и т. Д.).

$results = $sphinx->search($query, 'products') ->setMatchMode(\Sphinx\SphinxClient::SPH_MATCH_EXTENDED2)->query();

Как я могу объединить weight с другими факторами, такими как num_view? (Обратите внимание, я не хочу заказывать по двум полям по отдельности, я хочу иметь возможность объединить два поля в один счет.

Спасибо!

1 Ответ

0 голосов
/ 02 июля 2018

В SphinxQL вы можете использовать это:

SELECT id, weight() + num_view AS my_weight FROM products 
    WHERE match('some query') ORDER BY my_weight DESC

weight() + num_view - простой пример объединения двух факторов в одно значение веса.

Я полагаю, что в PHP API Sphinx вы можете сделать то же самое, используя функции SetSelect и SetSortMode .

...