Ruby on rails 斯芬克斯结果顺序的思考
我没有思考斯芬克斯(sphinx)的经验(我甚至为自己的工作感到自豪) 我想根据搜索的相关性和最近的搜索结果对我的搜索结果进行排序。也许,相关性是5倍,时间是1倍。(我必须用它来做正确的事情)。显然,如果没有搜索条件,我希望它只按时间排序 我知道我需要将Ruby on rails 斯芬克斯结果顺序的思考,ruby-on-rails,thinking-sphinx,Ruby On Rails,Thinking Sphinx,我没有思考斯芬克斯(sphinx)的经验(我甚至为自己的工作感到自豪) 我想根据搜索的相关性和最近的搜索结果对我的搜索结果进行排序。也许,相关性是5倍,时间是1倍。(我必须用它来做正确的事情)。显然,如果没有搜索条件,我希望它只按时间排序 我知道我需要将created_at列添加到搜索模型中,但不能作为索引(我使用什么术语?) 报表管理员: def index @reports = Report.search params[:search] # unknown sorting code
created_at
列添加到搜索模型中,但不能作为索引(我使用什么术语?)
报表管理员:
def index
@reports = Report.search params[:search]
# unknown sorting code here
end
报告模型:
define_index do
indexes apparatus
indexes body
indexes comments.body, as => :comment_body
????? created_at
end
你只要做:
define_index do
indexes apparatus
indexes body
indexes comments.body, as => :comment_body
has created_at
end
通过使用has
您只需表示它所需的任何字段,而不在其上建立索引
对于搜索排序,您需要阅读Sphinx文档,了解您认为需要如何对其进行加权和排序:
默认情况下,Sphinx根据其认为结果与给定输入的相关性进行排序。您只需执行以下操作:
define_index do
indexes apparatus
indexes body
indexes comments.body, as => :comment_body
has created_at
end
通过使用has
您只需表示它所需的任何字段,而不在其上建立索引
对于搜索排序,您需要阅读Sphinx文档,了解您认为需要如何对其进行加权和排序:
默认情况下,Sphinx会根据其认为结果与给定输入的相关性进行排序。
:sort\u mode=>:extended,:order=>“created\u at DESC,@relevance DESC”
因为相关性DESC
会将最相关的结果放在第一位还是最后一位?如果按DESC
顺序排序,这将首先为您提供最佳匹配,因为它们具有最高的相关性,对吧。。。如果我想了半秒钟以上,我会猜到。。。谢谢你的帮助:sort_mode=>:extended,:order=>“created_at DESC,@relevance DESC”
对于相关性,DESC
是否将最相关的放在第一位或最后?如果按DESC
顺序排序,将首先为您提供最佳匹配,因为它们具有最高的相关性。。。如果我想了半秒钟以上,我会猜到。。。谢谢你的帮助!