ElasticSearch按字段排序

时间:2015-08-25 15:57:40

标签: elasticsearch

我有这个问题:

 GET /_search
    {
    "from" : 0, "size" : 30,
    "query": {
    "filtered": { 
       "query" : {
        "query_string": {
          "query": "((categoria.id:1752) AND (cidadeId:7300)) 
           OR ((categoria.id:1752) and (estadoId:13)) "
        }
      }
    }
    },
    "sort": [
        { "img":   { "order": "desc" } }
    ]
 }

我想通过cidadeId = 7300然后另一个订购,但不知道如何在排序中执行此操作

1 个答案:

答案 0 :(得分:0)

我考虑过一个小例子:

PUT test/test/1
{
  "categoria.id":1752,
  "cidadeId":7300
}

PUT test/test/2
{
  "categoria.id":1752,
  "estadoId":13
}

PUT test/test/3
{
  "categoria.id":175,
  "cidadeId":1
  "estadoId":13
}

根据您在答案中提供的少量信息,我可以为您提供以下解决方案,用于cidadeId的上升排序

GET test/_search
{
  "from": 0,
  "size": 30,
  "query": {
    "filtered": {
      "query": {
        "query_string": {
          "query": "((categoria.id:1752) AND (cidadeId:7300)) OR ((categoria.id:1752) and (estadoId:13))"
        }
      }
    }
  },
  "sort": [
    {
      "cidadeId": {
        "order": "asc"
      }
    }
  ]
}

我希望这会有所帮助