Je voudrais être en mesure de filtrer mes commandes sur une plage de montants ET un ID utilisateur spécifique Le résultat attendu serait d'obtenir uniquement les commandes où l'utilisateur spécifié a fait une enchère dans une certaine gamme de quantité. Par exemple, il existe un ordre avec l'ID 1. L'utilisateur 5 enchère dessus pour un montant de 200. Maintenant, si je veux filtrer, je mets le filtre user_id à 5 et mets un filtre de plage sur le montant pour 150-250. .Sphinx: Filtrage MVA sur plusieurs champs
Comment configurer le sphinx pour pouvoir filtrer de cette manière?
J'ai les tableaux suivants:
Ordre:
+-------------+-----------------------+
| Field | Type |
+-------------+-----------------------+
| id | mediumint(8) unsigned |
| title | varchar(100) |
| description | text |
+-------------+-----------------------+
offre:
+--------------+-----------------------+
| Field | Type |
+--------------+-----------------------+
| id | mediumint(8) unsigned |
| order_id | mediumint(8) unsigned |
| user_id | mediumint(8) unsigned |
| amount | mediumint(9) |
+--------------+-----------------------+
J'ai essayé ce qui suit dans la configuration de sphynx. Mais je ne peux pas définir l'user_id comme leader. Le résultat est que je reçois toutes les commandes où il y a des offres dans cette fourchette de prix (de tous les utilisateurs), et je reçois toutes les commandes où l'utilisateur a fait une offre.
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
Merci
Je l'ai eu à travailler de cette façon. Mais a dû créer 2 index. Le premier index est resté comme il était et les index 2ème sur le user_id pour obtenir toutes les commandes liées à un utilisateur spécifié. Merci! –
c'est vraiment la beauté de Sphinx ... vous pouvez indexer vos données de différentes façons pour obtenir un accès rapide et pratique à de nombreuses facettes de celui-ci. –