我没有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
答案 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根据它认为结果与给定输入的相关程度进行排序。