我在使用ThinkingSphinx作爲網頁上的搜索引擎。我需要的是按年份和相關性對搜索結果進行排序。思維獅身人面像 - 按年份和相關性排序
由於order: "DATE_FORMAT(created_at, '%Y') DESC"
不起作用,時間段根本無用,因爲我想要什麼,我正在擺脫想法。
我在使用ThinkingSphinx作爲網頁上的搜索引擎。我需要的是按年份和相關性對搜索結果進行排序。思維獅身人面像 - 按年份和相關性排序
由於order: "DATE_FORMAT(created_at, '%Y') DESC"
不起作用,時間段根本無用,因爲我想要什麼,我正在擺脫想法。
YEAR
函數可以滿足您的需求,但值得注意的是您需要在SELECT子句中使用它,給結果一個別名,然後在您的ORDER子句中引用該別名。
這是假設你正在使用TS V3:
Model.search 'foo',
:select => '*, YEAR(created_at) as created_at_year, weight() as weight',
:order => 'created_at_year DESC, weight DESC'
工作代碼與獅身人面像在OSX思考獅身人面像V2 2.1.6
:sphinx_select => "*, YEAR(created_at) as created_at_year", :order => "created_at_year DESC, weight() DESC")
代碼與獅身人面像在BSD思考獅身人面像V2 2.0.6
: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!
TS v2的任何解決方案?由於該項目依賴於Rails 3.0,因此無法更新。 –
對於TS v2,嘗試將':select'更改爲':sphinx_select'。我認爲這應該是所有需要的。 – pat