Ruby on rails 斯芬克斯结果顺序的思考

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

我没有思考斯芬克斯(sphinx)的经验(我甚至为自己的工作感到自豪)

我想根据搜索的相关性和最近的搜索结果对我的搜索结果进行排序。也许,相关性是5倍,时间是1倍。(我必须用它来做正确的事情)。显然,如果没有搜索条件,我希望它只按时间排序

我知道我需要将
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
顺序排序,将首先为您提供最佳匹配,因为它们具有最高的相关性。。。如果我想了半秒钟以上,我会猜到。。。谢谢你的帮助!