下面的数据是弹性搜索索引的搜索查询的输出。我想根据review.rate
字段对数据进行排序。
我该怎么办?
数据
[{
"name": "ABC",
"review": [{
'rate': 1.5,
'note': "XYZ",
'type': "review"
},
{
'rate': 4.5,
'note': "XYZ",
'type': "note"
},
{
'rate': 2.0,
'note': "XYZ",
'type': "comment"
}]
},
{
"name": "PQR",
"review": [{
'rate': "",
'note': "XYZ",
'type': "comment"
},
{
'rate': 3.5,
'note': "XYZ",
'type': "note"
},
{
'rate': 1.0,
'note': "XYZ",
'type': "review"
}]
},
{
"name": "STU",
"review": [{
'rate': 5.0,
'note': "XYZ",
'type': "comment"
},
{
'rate': 3.5,
'note': "XYZ",
'type': "review"
},
{
'rate': 1.5,
'note': "XYZ",
'type': "note"
}]
}]
尝试了以下内容
查询
{
"_source": {
"includes": [
"name"
]
},
"query":{
"bool": [{
"nested": {
"path": "review",
"query": {
"bool": {
"must": [
{
"term": {
"review.type": "comment"
}
}
]
}
}
}
}]
},
"sort": ["review.rate"]
}
输出必须为[PQR,ABC,STU]。我该如何实现?