Elasticsearch基于多个字段排序

时间:2017-03-25 07:45:26

标签: sorting elasticsearch

我需要根据多个字段对索引数据进行排序。

Exa:我的索引数据如下:

{  " id":3,  " displayId":0,  " createdAt":1490207400001,  " priority":" NORMAL", }

{  " id":3,  " displayId":0,  " createdAt":1490207400002,  "优先":" HIGH", }

像这样会有多个记录具有不同的"优先级"和" createAt"字段。

步骤1:首先,我需要按优先级对记录进行排序。

步骤2:然后我想在第1步中按字段排序记录" createdAt"

在elasticsearch中执行此操作的方法是什么?

先谢谢!!

1 个答案:

答案 0 :(得分:2)

你这样做:

GET /my_index/my_type/_search 
{
  "sort" : [
    { "priority" : {"order" : "asc"}},
    { "createAt" : "desc" }
  ],
"query" : {
    ...
}}

这假定您的优先级字段值已正确排序,否则您必须重命名它们或使用函数进行排序。