Elasticsearch实现按字段和方向排序

I've been reading the 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 but so far no luck. I've seen examples like {"sort": {"_score": "desc"}, "query": { .... but couldn't quiet get my head around it to modify my array since this is the very first time I'm dealing with ES.

All I need is: I want to be able to sort by price or stock in asc or desc order.

Everytime I try to update my array to implement sorting, I get {"error":{"code":0,"message":"Invalid option sort"}} error.

NOTE: The query array is being passed to Pagerfanta to get results.

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

2个回答



对于特定的字段和方向:</ p>

  {
“sort”: {
“price”:“asc”
}
...代码的其余部分
}
</ code> </ pre>

对于没有特定的排序(这是设置的) 默认情况下):</ p>

  {
“sort”:{
“_score”:“desc”
}
...代码的其余部分
}

</ code> </ pre>
</ div>

展开原文

原文

For the specific field and direction:

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

For no particular sorting (this is set by default):

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



以下是一个示例:</ p>

  {
“_source”:true,\ n“query”:{
“simple_query_string”:{
“query”:“1 *”
}
},
“sort”:[
{
“price”:{
“ 命令“:”desc“,
”缺少“:”_ last“
}
},
{
”_score“:{
”order“:”desc“,
”缺少“:” _last“
}
}
]
}
</ code> </ pre>
</ div>

展开原文

原文

Here's an example:

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

dsfovbm931034814
dsfovbm931034814 我玩了设置,但似乎没有任何变化。 结果完好无损。
大约 5 年之前 回复
doujionggan9570
doujionggan9570 当您将订单更改为“asc”时会发生什么? 你试过玩这些设置吗?
大约 5 年之前 回复
du8589840
du8589840 我根据你的建议更新了我的原始查询数组,最后得到了这个,但没有触及查询部分,因为它是必需的。 结果,我没有看到任何顺序的变化。
大约 5 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问