я использую эта библиотека который в основном просто построитель запросов.
Следующий запрос:
SELECT * FROM car_search ORDER BY car_model_name ASC, car_id DESC LIMIT 2;
В результате чего:
+------+----------------+---------------------+
| id | car_model_name | car_id |
+------+----------------+---------------------+
| 33 | Audi | 17461 |
| 20 | Bentley | 17439 |
+------+----------------+---------------------+
Теперь, если я изменю порядок запросов, например,
SELECT * FROM car_search ORDER BY car_model_name ASC, car_id ASC LIMIT 2;
Как видно, я изменил порядок с car_id DESC
в car_id ASC
в надежде, что результат будет упорядочен так же, как MySQL. Как будто Сфинкс игнорирует запросы заказов, за исключением первого.
Но возвращенный результат одинаков для обоих запросов.
Я читал о режимах сортировки в Сфинкс док, но кажется, что это можно сделать только если бы я использовал PHP sphinx client.
Есть ли в любом случае записать его в конфигурации индекса, возможно, такой как min_prefix_len
, enable_star
, так далее?
Или прямо из запроса?
Кажется, это неправильное понимание того, как ORDER BY
работает в SQL / MySQL. Что вам нужно это:
SELECT * FROM car_search ORDER BY car_id ASC, car_model_name ASC LIMIT 2;
Других решений пока нет …