@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 товаров из первого запроса , т.е. при переходе на следующую страницу товары из второго запроса так и не будут показываться.
  • Вопрос задан
  • 2923 просмотра
Решения вопроса 1
@Micher
В вашем примере получается два запроса, нужно строить один запрос.

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

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

Похожие вопросы