按名称弹性搜索排序

I try to sort my documents per name using elastic search & the official php client , how i can proceed ?

    $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);

Try this

$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'
            ]
        ]
      ]
    ];

https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-sort.html

I know this question is over a year old, but the answer is not easy to find on the internet, so I'll answer it anyway.
To specify the field to sort on and the order to sort in, use the following syntax:

$params['sort'] = array('updated_at:desc');

To sort on multiple fields:

$params['sort'] = array('updated_at:desc', 'user_id:asc', ...);

If you have unanalyzed keyword you must use it without enabling fielddata:

$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.keyword' => 'asc'
            ]
        ]
      ]
    ];

But if you haven't the unanalyzed keyword you should reset your index mapping to enable fielddata to name field:

    curl -X PUT "localhost:9200/my_index/_mapping" -H 'Content-Type: application/json' -d'
    {
      "properties": {
        "name": { 
          "type":     "text",
          "fielddata": true
        }
      }
    }

'

see : https://www.elastic.co/guide/en/elasticsearch/reference/current/fielddata.html