2017-04-02 33 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

我的错误是我只更新了索引而不是索引的映射,因为在创建映射之前发现了类型参数之前映射已经存在。

相关问题