按名称排序elasticsearch

Nin*_*jaX 5 php elasticsearch

我尝试使用弹性搜索和官方 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)

Fra*_*ank 5

我知道这个问题已经有一年多了,但是在互联网上很难找到答案,所以无论如何我都会回答。
要指定排序的字段和排序的顺序,请使用以下语法:

$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