Yon*_*ciu 3 search thinking-sphinx
我想搜索多个模型并按某些模型具有的某些属性进行过滤,有些则不需要.我希望带有属性的模型得到过滤,但没有它的模型只是忽略它.
目前只有具有该属性的模型才会返回结果.有没有办法让其他模型以某种方式忽略属性过滤器返回结果?
找到了办法.在没有这种属性的模型的索引上,可以像这样创建一个虚拟的:
has "0", :type => :integer, :as => :the_attribute_name
Run Code Online (Sandbox Code Playgroud)
然后在执行应用程序范围的搜索时:
@results = ThinkingSphinx.search(@search_term,
:with => {:the_attribute_name => [@the_attribute_value, 0]}
)
Run Code Online (Sandbox Code Playgroud)
顺便说一句,这假设在具有此属性的模型上不允许零值.如果零是那些模型中的有效属性,则可以使用另一个值(例如9999999).请注意,属性不能接受负整数.
| 归档时间: |
|
| 查看次数: |
822 次 |
| 最近记录: |