Elasticsearch 实现按字段和方向排序

Elasticsearch implementing sort by field and direction

我一直在阅读 documentation and other example posts since yesterday to work out how to add sort by field and the direction to my current query array here 但到目前为止还没有成功。我见过像 {"sort": {"_score": "desc"}, "query": { .... 这样的例子,但我无法静下心来修改我的数组,因为这是我第一次处理 ES。

我只需要:我希望能够按 pricestock 排序 ascdesc 顺序。

每次我尝试更新我的数组以实现排序时,我都会收到 {"error":{"code":0,"message":"Invalid option sort"}} 错误。

注意:查询数组正在传递给 Pagerfanta 以获得结果。

    $paginator = $this->productFinder->findPaginated($myArray)
        ->setMaxPerPage($limit)
        ->setCurrentPage($page);

这是一个例子:

{
  "_source":true,
  "query":{
    "simple_query_string":{
      "query":"1*"
    }
  },
  "sort":[
    {
      "price":{
        "order":"desc",
        "missing":"_last"
      }
    },
    {
      "_score":{
        "order":"desc",
        "missing":"_last"
      }
    }
  ]
}

对于具体的领域和方向:

{
   "sort": {
      "price": "asc"
   }
   ... rest of the code
}

对于没有特定的排序(默认设置):

{
   "sort": {
      "_score": "desc"
   }
   ... rest of the code
}