use*_*419 14 ruby-on-rails sunspot
我有三个型号(User
,Tag
,Product
)和他们互动ST User
有很多Tags
和Products
.
出于搜索目的,我希望能够搜索(使用一个搜索栏)用户名,标签名称和产品说明.我还想搜索产品页面,但这仅与标签名称和产品说明相关.
这是两个例子:
搜索:"Linus Torvalds"返回三个模型中Linus Torvalds的所有实例,其中任何用户名实例都放在更高的位置.
搜索:带有年龄的"Linux":"20-25"返回所有包含名称/描述中包含"Linux"且属于该年龄范围的用户的用户,以及包含"Linux"标签的用户以及谁拥有属于该年龄段的产品.请注意,如果搜索没有包含年龄,那么它将默认为适合"Linux"部分的所有人而不是任何人.
我的问题是这样做的最佳方法是什么?我应该用自己的控制器创建搜索模型吗?我应该忽略它并在共享文件夹中包含搜索部分吗?还有哪些其他方法?
非常感谢.
Jes*_*ott 23
如果你正在做任何复杂的条件,我喜欢搜索对象的想法.
但是使用Sunspot搜索对象:
@sunspot_search = Sunspot.search User, Tag, Product do |query|
query.keywords @search_query
query.with(:age).greater_than 20
query.with(:age).less_than 25
query.paginate(:page => params[:page], :per_page => 30)
end
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5333 次 |
最近记录: |