关于Ruby on Rails:思考狮身人面像-按年份和相关性排序

Thinking Sphinx- order by year and relevance

我正在使用ThinkingSphinx作为网页上的搜索引擎。我需要的是按年份和相关性对搜索结果进行排序。

由于order:"DATE_FORMAT(created_at, '%Y') DESC"不起作用,并且时间段对于我想要的内容根本没有用,所以我没有主意了。


在带有Sphinx 2.1.6的OSX上使用Think Sphinx V2的工作代码

1
:sphinx_select =>"*, YEAR(created_at) as created_at_year", :order =>"created_at_year DESC, weight() DESC")

在带有Sphinx 2.0.6的BSD上思考Sphinx V2的代码

1
:sphinx_select =>"*, YEAR(created_at) as created_at_year, weight() as my_weight", :order =>"created_at_year DESC, my_weight DESC") # can't be aliased as weight!

YEAR函数可以满足您的需要,但值得注意的是,您需要在SELECT子句中使用它,为结果指定一个别名,然后在您的ORDER子句中引用该别名。

这假定您正在使用TS v3:

1
2
3
Model.search 'foo',
  :select => '*, YEAR(created_at) as created_at_year, weight() as weight',
  :order  => 'created_at_year DESC, weight DESC'