2010-09-22 6 views
2

je me demandais comment je pouvais combiner les ensembles de résultats de la pensée SphinxThinking Sphinx combinaison: avec des paramètres

je la requête suivante:

Model.search :with => {:attribute_1 => id} 

Ce que je veux combiner avec:

Model.search :with => {:attribute_2 => id} 

Existe-t-il une façon simple de le faire avec une seule recherche? Je pourrais faire l'addition de tableau mais cela ne semble pas être une bonne solution du tout. Si je combinons les filtres comme ceci:

Model.search :with => {:attribute_1 => id, :attribute_2 => id} 

les résultats sont les intersection des deux filtres, ce qui est la sortie désirée. Est-il possible de faire une opération OU avec les filtres.

Répondre

4

Ceci est vraiment dû à une limitation dans Sphinx - qui n'a pas de concept de RO lors du référencement des attributs dans les filtres.

Peut-être que vous pourriez combiner les deux attributs ensemble? Ensuite, ce qui suit travaillerait:

Model.search :with => {:attr_1_and_2 => id} 

Dans votre modèle, si vous avez affaire à des valeurs uniques, cela va certainement travailler - et peut-être avec des tableaux de valeurs:

has [attribute_1, attribute2], :as => :attr_1_and_2 
+0

Je pense que c'est exactement ce que Je cherche. Merci pour le conseil! –

+0

Excellente solution! –

Questions connexes