@zeddicus

Как выполнить сортировку sphinx по значению?

Здравствуйте!

Можно ли отсортировать результаты поиска по значению атрибута , т.е. чтобы вначале шли нужные мне товары.
Пытался сделать через несколько запросов :
$cl->SetLimits(0, 12);
$cl->SetFilter ('category', array(crc32('Готовые изделия')));
$cl->AddQuery('@name '.$_GET['search']);

$cl->ResetFilters();
$cl->SetSortMode (SPH_SORT_ATTR_DESC, 'category');
$cl->SetFilter ('category', array(crc32('Готовые изделия')), true);
$cl->AddQuery('@name '.$_GET['search']);

$result = $cl->RunQueries();

Кстате при таком запросе в логах у меня отображается так:
49dde5e9f3a0458590d912538983db75.png
хотя судя по описанию должно быть так :
[Sun Jul 12 15:18:17.000 2009] 0.040 sec x2 [ext2/0/ext 747541 (0,20)] [lj] the, т.е. получается у меня запросы не объединяются?

Может я что-то делаю не так, потому-что такой вариант не подходит, так как у меня на странице должно быть 12 товаров, но при таком запросе, в результате каждого запроса у меня будет по 12 товаров, а вывести мне надо будет только 12 товаров из первого запроса , т.е. при переходе на следующую страницу товары из второго запроса так и не будут показываться.
  • Вопрос задан
  • 2917 просмотров
Решения вопроса 1
@Micher
В вашем примере получается два запроса, нужно строить один запрос.

Попробуйте через SetSelect для нужной категории выставить значение 1, а для остальных 0.
В SetSortMode SPH_SORT_EXTENDED отсортировать по значению из SetSelect и по атрибуту категория.
Тем самым получится один запрос, который получает товары сначала из определенной категории.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы