王國慶 发表于 2023-8-28 23:33:34

ElasticSearch置顶方案

最近系统有个需求,希望工作流的审批人被催办后就要置顶在最前面,
工作流列表我是用es的,一开始想用pinned实现,但用pinned的话,每页都会置顶在前面,我的需求只是想让他优先排在前面,翻页后正常显示
后面找到这个,通过把匹配到数据的分数提高,然后用sort进行排序,就能实现我的需求了
GET wf_workflow-latest/_search
{

"query": {
    "bool": {
      "must": [
      {
          "boosting": {<br>      //这是数据过滤条件,影响数据结果
            "positive": {
            "match_all": {}
            },<br>        //这是相关性数据的过滤条件,不会影响数据结果,对得分有影响
            "negative": {
            "bool": {
                "must": [
                  {
                  "nested": {
                      "path": "current_task.reminders",
                      "query": {
                        "term": {
                        "current_task.reminders.reminder_user_id": {
                            "value": 1
                        }
                        }
                      }
                  }
                  }
                ]
            }
            },<br>        //将匹配到的相关性数据的得分乘以这个系数
            "negative_boost": 10
          }
      }
      ]
    }
},
"sort": [
    "_score",
    {
      "last_modification_time": {
      "order": "asc"
      }
    }
],
"from": 0,
"size": 20


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: ElasticSearch置顶方案