欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Elasticsearch——》默认排序 & 自定义排序

程序员文章站 2024-02-28 12:27:58
...

请参考:总结——》【Elasticsearch】
系统SystemLinux
版本versionelasticesearch7.6
根目录rootPath/opt/app/elasticesearch7.6
Elasticsearch——》默认排序 & 自定义排序

一、默认排序

默认情况下,是按照_score降序排序的

GET goods/_search
{
  "from": 0,
  "size": 20,
  "query": {
    "bool": {
      "must": [
        {
          "term": {
            "status": {
              "value": 1,
              "boost": 1
            }
          }
        }
      ]
    }
  }
}

Elasticsearch——》默认排序 & 自定义排序

二、自定义排序

sort参数里,指定字段作为排序条件

GET goods/_search
{
  "from": 0,
  "size": 20,
  "query": {
    "bool": {
      "must": [
        {
          "term": {
            "status": {
              "value": 1,
              "boost": 1
            }
          }
        }
      ]
    }
  },
  "sort": [
    {
      "putSaleTime": {
        "order": "desc"
      }
    }
  ]
}

Elasticsearch——》默认排序 & 自定义排序

1、现象

sort参数里,指定字段作为排序条件,搜索结果中_score字段为null

2、解决

sort参数里增加 _score字段排序

GET goods/_search
{
  "from": 0,
  "size": 20,
  "query": {
    "bool": {
      "must": [
        {
          "term": {
            "status": {
              "value": 1,
              "boost": 1
            }
          }
        }
      ]
    }
  },
  "sort": [
    {
      "putSaleTime": {
        "order": "desc"
      }
    },
    {
      "_score":{
        "order": "desc"
      }
    }
  ]
}

Elasticsearch——》默认排序 & 自定义排序