Задать вопрос
@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 товаров из первого запроса , т.е. при переходе на следующую страницу товары из второго запроса так и не будут показываться.
  • Вопрос задан
  • 2927 просмотров
Подписаться 2 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
@Micher
В вашем примере получается два запроса, нужно строить один запрос.

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

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽