2017-04-02 36 views
0

我正在使用elasticsearch與紅寶石應用程序通過輪胎寶石。 這裏是我的索引在elasticsearch中排序的正確方法是什麼?

mapping do 
    indexes :title 
    indexes :views_count, type: 'integer' 
    indexes :created_time, type: 'date' 
end 

而且我的查詢: -

News.tire.search load: true do 
    query {all} 
    sort { by :views_count, 'desc'} 
end 

這是相當不錯的,看起來這將是行之有效的。但是,有意想不到的結果。它將數字視爲字符串。這意味着它會考慮'33'小於'4'。我想告訴elasticsearch把它們看作整數而不是字符串。

同樣的事情發生在created_time,但我沒有注意到它與之相配的模式。我想我應該通過類型或其他東西。那麼,任何機構都可以幫助我?

預先感謝您。

+0

請發佈您的Ruby腳本創建的索引的映射。這可以通過'curl -XGET localhost:9200/index_name'來實現。 –

+0

謝謝你。你解決了它! –

回答

0

我的錯誤是我只更新了索引而不是索引的映射,因爲在創建映射之前發現了類型參數之前映射已經存在。

相關問題