我尝试使用弹性搜索和官方 php 客户端按名称对文档进行排序,我该如何继续?
$params = [
'index' => $this->index ,
'type' => 'videos',
'from' => $this->uri->segment(2),
'size' => 12,
'body' => [
'query' => [
'filtered' => [
'filter' => [
'term' => [ 'name' => $query ] ,
'term' => [ 'tags' => $query ]
]
]
]
]
];
$data['results'] = $this->client->search($params);
Run Code Online (Sandbox Code Playgroud)
我知道这个问题已经有一年多了,但是在互联网上很难找到答案,所以无论如何我都会回答。
要指定排序的字段和排序的顺序,请使用以下语法:
$params['sort'] = array('updated_at:desc');
Run Code Online (Sandbox Code Playgroud)
要对多个字段进行排序:
$params['sort'] = array('updated_at:desc', 'user_id:asc', ...);
Run Code Online (Sandbox Code Playgroud)
小智 0
尝试这个
$params = [
'index' => $this->index ,
'type' => 'videos',
'from' => $this->uri->segment(2),
'size' => 12,
'body' => [
'query' => [
'filtered' => [
'filter' => [
'term' => [ 'name' => $query ] ,
'term' => [ 'tags' => $query ]
]
]
],
'sort' => [
'name' => [
'order' => 'asc'
]
]
]
];
Run Code Online (Sandbox Code Playgroud)
https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-sort.html