Moh*_*ain 6 search ruby-on-rails
我使用Sphinx和Thinking Sphinx实现了全文搜索.我想添加列式搜索.有点像:-(以Stack Overflow为例)
假设您想要查看与您相关的活动,只需输入:
user:me
Run Code Online (Sandbox Code Playgroud)
然后它将返回一个结果,其中包含与piemesons相关的所有问题和答案.
如果你输入
votes:15
Run Code Online (Sandbox Code Playgroud)
然后它将返回一个结果,所有问题都标记为超过15票.
如果你输入
user:me votes:15
Run Code Online (Sandbox Code Playgroud)
然后它会以15票以上的票数返回属于你的所有问题和答案.
我怎么能实现这个呢?
现在我的搜索结果基于全文搜索.如何包含这些功能?
在Sphinx或Solr或任何其他搜索引擎中可以使用任何选项吗?
:with
思考狮身人面像的选项。
首先,您必须在索引定义中定义这些属性(查看此处的属性部分)。
has views_count, :as => :views, :type => :integer
has user.id, :as => :user, :type => :integer
Run Code Online (Sandbox Code Playgroud)
然后你可以搜索这样的帖子:
Post.search '', :with => {:views => 12..maxint, :user => User.first.id}
Run Code Online (Sandbox Code Playgroud)
(我不确定是否有更优雅的给出开放范围的可能性,但 12..max_int 应该足够了)
两件重要的事情:
"CRC32(CONCAT(user_type, user_id))"
而不是user.id
归档时间: |
|
查看次数: |
407 次 |
最近记录: |