thinking_sphinx结果顺序

时间:2011-12-05 01:25:00

标签: ruby-on-rails thinking-sphinx

我没有think_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

1 个答案:

答案 0 :(得分:1)

你会这样做:

define_index do
  indexes apparatus
  indexes body 
  indexes comments.body, as => :comment_body

  has created_at
end

通过使用has,您只需表示它需要的任何字段,但不是

上的索引

对于搜索排序,您需要阅读Sphinx文档,了解您希望如何加权和排序:

http://freelancing-god.github.com/ts/en/searching.html#sorting

http://freelancing-god.github.com/ts/en/searching.html#fieldweights

默认情况下,Sphinx根据它认为结果与给定输入的相关程度进行排序。