Я хотел был бы иметь возможность отфильтровать мои заказы в диапазоне количества И конкретный user_id Ожидаемый результат - получить только заказы, в которых указанный пользователь сделал ставку в определенном количество область.Sphinx: Фильтрация MVA на нескольких полях
Например, есть заказ с идентификатором 1. Пользователь 5 ставку на него на сумму 200. Теперь, если я хочу фильтровать, я устанавливаю фильтр user_id на 5 и устанавливаю фильтр диапазона на сумму 150-250 ,
Как настроить sphinx для фильтрации таким образом?
У меня есть следующие таблицы:
Order:
+-------------+-----------------------+
| Field | Type |
+-------------+-----------------------+
| id | mediumint(8) unsigned |
| title | varchar(100) |
| description | text |
+-------------+-----------------------+
торгов:
+--------------+-----------------------+
| Field | Type |
+--------------+-----------------------+
| id | mediumint(8) unsigned |
| order_id | mediumint(8) unsigned |
| user_id | mediumint(8) unsigned |
| amount | mediumint(9) |
+--------------+-----------------------+
Я попытался следующие в конфигурации сфинкса. Но я не могу установить user_id как ведущий. В результате я получаю все заказы, в которых есть ставки в этом количестве (от всех пользователей), и я получаю все заказы, на которых пользователь сделал ставку.
sql_attr_multi = uint amount from query; SELECT order_id as id, amount FROM bids
sql_attr_multi = uint user_id from query; SELECT order_id as id, user_id FROM bids
Благодаря
Я получил это, чтобы работать таким образом. Но нужно было создать 2 индекса. Первый индекс остался, как это было, и 2-й индекс на user_id, чтобы получить все заказы, связанные с указанным пользователем. Благодаря! –
Это действительно красота Sphinx ... вы можете индексировать свои данные разными способами, чтобы получить быстрый и удобный доступ ко многим различным аспектам. –