es搜索sort 排序的问题

es检索数据的, 我按照id排序的时候,当升序的时候 116979 在第一个, 降序的时候89996排在第一个,大牛们怎么样才能处理好这个问题呢
已邀请:

stab - freshman

赞同来自: Felix

根据你的描述,我猜测你是针对es里的“_id”进行排序的,“_id”是“string”类型,用它来排序肯定是达不到你想要的效果的。你建议你可以增设一个field,设成int类型,对该field进行排序。

Felix

赞同来自:

你好,谢谢您的回答!
假如在不修改"_id"字段的类型,还有其他办法吗,我看别人说设置mapping可以达到不分析string类型,从而进行排序 下面是我的mapping设置

1.png


在排序的时候 使用 {"id.raw": "desc"} 查询到的结果显示 sort字段为空。

1.png


是哪设置错了吗?我是es新手,还请多多包涵。

要回复问题请先登录注册