2010-05-06 5 views
0

Je veux trier par expression, puis par un attribut croissant, puis par un autre attribut ascendant. Quelque chose comme ça: :order => "(a < some constant) desc, b asc, c asc". Comment l'obtenir?Penser le sphinx, le tri complexe - comment puis-je combiner le tri étendu avec le tri expr?

Le tri étendu ne fonctionne pas en raison de <. Expr échoue à cause des virgules.

j'ai réussi à produire le tri équivalent à :order => "(a < some constant) desc, b desc" avec :order => "(a < some constant)", :sort_mode => :expr, :sort_by => :b, mais je ne peux pas ajouter un autre attribut (c) pour que le tri, ni modifier le mode de tri pour b à asc.

Répondre

0

SetSelect Cette fonction permet de créer des tris arbitraires. Je ne suis pas sûr si elle est disponible dans think-sphinx, donc la modification de cette gemme peut être nécessaire.