我有一個方案,其中項目有計劃,計劃有許多不同的名稱和截止日期。如何根據獅身人面像(Rails)中的字段值對搜索結果進行排序
鑑於我可以搜索項目和排序項目字段值,甚至多態字段值我如何排序基於調度的結果與請求的調度名稱。
在思維獅身人面像中,我怎樣才能按照匹配的計劃名稱的截止日期排序我的搜索結果,例如。我希望通過「預訂」(時間表)截止日期對項目進行分類。
這似乎應該是簡單的獅身人面像,但它逃避我。我已經打算構建一個後期搜索排序,這個排序考慮了排名名稱,但是一個獅身人面像排序會更受歡迎。
我試過類似下面的內容,但它沒有考慮計劃名稱。
class Project
has_many :schedules
define_index do
has schedules.due_date, :type => :datetime, :as => :due_date
end
end
$: Project.search(query, :order => "due_date desc", :match_mode => :extended)
有趣的是我得到與結果(有點排序),但它的不準確,可能是因爲它沒有考慮很多的時間表beloning一個項目,因此是不字段值具體。我也考慮過使用「with」,但是
有沒有一種方法可以用思維獅身人面像來實現? (我on Rails的2.3.x版本,所以我在思考,獅身人面像1.4.3。)
[編輯] 我已經成功地整理這篇文章的搜索與< =>操作,但需要看看了解時間表。我也研究過表達式排序,但這只是模型的搜索領域,我不知道我可以索引哪些變得可用。
感謝您的回答,我在[編輯]中提到我已經考慮使用Sphinx擴展和表達式排序。這如何適用於我的場景?我的意思是,我不相信你可以指定'..,:order =>「schedules.attribute_name ASC/DESC」' – yekta
@yekta請參考我提供的文檔鏈接。 您正在將屬性創建爲due_date。所以你應該能夠specfy ... ':order =>:due_date,:sort_mode =>:desc,:match_mode =>:extended' – mohit
我沒有參考文檔,但又沒有解決我的方案。 (我指出了我的編輯模式中的匹配模式擴展和排序模式)如何獲得*計劃*只匹配某個特定的名稱進行排序?記住搜索來自'Project.search ...'這是我的問題的場景。 – yekta