Ruby on rails 思考狮身人面像:有可能使用具有属性的复杂逻辑吗?

Ruby on rails 思考狮身人面像:有可能使用具有属性的复杂逻辑吗?,ruby-on-rails,thinking-sphinx,Ruby On Rails,Thinking Sphinx,这个问题在某种程度上与另一个问题相关: 在我看来,sphinx现在支持或逻辑过滤属性,但没有办法通过思考sphinx来使用该功能 在思考斯芬克斯时,是否可以使用任何复杂的逻辑来过滤属性?基本上,我尝试在搜索中指定属性的条件,例如:a或((不是a)和b),我会这样使用它: ((属性a==true)或(属性a==false和属性b在[x,y,z])) 或者类似的东西。如果我没弄错的话,问题是:with and:without都需要一个散列,并用and(或and NOT)连接每个条件。Hi Soren

这个问题在某种程度上与另一个问题相关:

在我看来,sphinx现在支持或逻辑过滤属性,但没有办法通过思考sphinx来使用该功能

在思考斯芬克斯时,是否可以使用任何复杂的逻辑来过滤属性?基本上,我尝试在搜索中指定属性的条件,例如:
a或((不是a)和b)
,我会这样使用它:

((属性a==true)或(属性a==false和属性b在[x,y,z]))

或者类似的东西。如果我没弄错的话,问题是:with and:without都需要一个散列,并用and(或and NOT)连接每个条件。

Hi Sorenly 你可以用这样的东西

Model.search“(@field_name1 value1 | value2)(@field_name2 value3 | value4),:match_mode=>:extended

这里的“|”等同于斯芬克斯或斯芬克斯,空间等同于和

([x,y,z]中的(属性_a==true)或(属性_a==false和属性_b])) =>

Model.search”(@attribute_a 1)| (属性_a0(属性_bx | y | z)) )“,
:匹配模式=>:扩展


这似乎是可行的,尽管我最终在那个项目中使用了另一个解决方案……这将在我下次使用sphinx时派上用场。谢谢:-)