对数组中的elasticsearch数据进行排序

时间:2016-05-26 06:12:34

标签: php elasticsearch

我在elasticsearch中有数据

"id": "edff12sd3",
"desc": "elastic_data"
"main_array": [
{
"id": "2308",
"name": "Grey Area",
"location": {
  "lat": 28.5696577,
  "lon": 77.3229933
 }
},
{ 
"id": "2274",
"name": "Tribute to The Beatles by Atul Ahuja- Live Music",
"location": {
  "lat": 29.5696577,
  "lon": 77.3229933
}
},
{ 
"id": "2275",
"name": "Tribute to Music",
"location": {
  "lat": 29.9696577,
  "lon": 77.3229933
}
}

现在我必须按距离排序这个数组对象 我试过这样的

{
"query": {
"filtered": {
  "query": {
    "multi_match": {
      "query": "elastic_data",
      "fields": [
        "desc"
      ]
    }
  }
}
},"sort": [
      {
    "_geo_distance": {
      "main_array.location": {
        "lat": 28.613939,
        "lon": 77.209021
      }
      },
      "order": "asc",
      "unit": "km"
    }
      }
    ]
}

我试图按距离对main_array中的所有对象进行排序,但它不起作用,它显示的总距离不是main_array中存在的单个数据。

请帮帮我。感谢

0 个答案:

没有答案