我试图在aggs中进行弹性搜索,相当于mysql“ORDER BY Title ASC / DESC”。这是索引结构:
'body' => array(
'mappings' => array(
'test_type' => array(
'_source' => array(
'enabled' => true
),
'properties' => array(
'ProductId' => array(
'type' => 'integer',
'index' => 'not_analyzed'
),
'Title' => array(
'type' => 'string',
'index' => 'not_analyzed'
),
'Price' => array(
'type' => 'double',
'index' => 'not_analyzed'
)
)
)
)
我可以通过Price订购如下:
{
"aggs": {
"group_by_product": {
"terms": {
"field": "ProductId",
"order": {
"product_price" : "asc"
}
},
"aggs": {
"product_price": {
"avg": {
"field": "Price"
}
}
}
}
}
}
但是不可能通过Title(ORDER BY Title ASC / DESC)订购。
有没有办法按标题排序?
非常感谢你!
此致
答案 0 :(得分:4)
编辑以反映评论中的说明:
要按字符串值对聚合进行排序,请使用intrinsic sort,但目前不支持对非数字指标聚合进行排序。
"aggs" : {
"order_by_title" : {
"terms" : {
"field" : "title",
"order": {
"_term" : "asc"
}
}
}
}