elasticsearch排序问题

使用completion suggester,然后在搜索建议中怎么对搜索出来的结果进行排序?我有一个search_count字段,想按照这个字段排序`GET movie/douban/_search?pretty
{

"suggest": {
    "my_suggest" : {
        "text":"柠檬", 
        "completion" : { 
            "field" : "suggest",
            "size":10
        },
        "sort":{
          "search_count":{
            "order":"desc"
          }
        }
    }
    
    
}

}`
这样写会提示suggester with name [sort] not supported

GET movie/douban/_search?pretty
{
    "suggest": {
        "my_suggest" : {
            "text":"柠檬", 
            "completion" : { 
                "field" : "suggest",
                "size":10
            }
        }
    },
    "sort":{
      "search_count":{
        "order":"desc"
      }
    }
}

这样写的话不报错但是也根本没有排序

这是数据大概样式`"suggest": {

"my_suggest": [
  {
    "text": "柠檬",
    "offset": 0,
    "length": 2,
    "options": [
      {
        "text": "柠檬",
        "_index": "movie",
        "_type": "douban",
        "_id": "2042618",
        "_score": 1,
        "_source": {
          "name": "柠檬时期 / The Graduates",
          "img": "https://img3.doubanio.com/view/movie_poster_cover/lpst/public/p2176652956.jpg",
          "suggest": [
            {
              "input": [
                "柠檬时期 / The Graduates"
              ],
              "weight": 1
            },
            {
              "input": [
                "柠",
                "时期",
                "檬",
                "柠檬",
                "graduates"
              ],
              "weight": 1
            },
            {
              "input": [
                "檸檬のころ"
              ],
              "weight": 1
            },
            {
              "input": [
                "檸",
                "こ",
                "ろ",
                "の"
              ],
              "weight": 5
            }
          ],
          "nike_name": "檸檬のころ",
          "search_count": 0,
          "pubdate": "2007-03-31"`

求指导正确格式,或者给出一个能代替的方法只要可以按照某个字段查询即可

阅读 5.6k
1 个回答

对搜索结果进行排序的话,用filter 试试,
下面贴一个我真实用到的一个dsl,包含排序,聚合,过滤等。

{
    "size":2,
    "_source":["title","ptitle","gentuanyouid","startline","hits","daytype"],
    "sort":{
        "updatetime":{
            "order":"desc"
        }    
    },
    "query":{
        "bool":{
                "filter":{
                       "bool":{
                            "must":[
                                
                                {
                                    "match_phrase":{
                                        "startline":"|5993-5958"
                                    }    
                                },
                                {
                                    "term":{
                                            "online":"1"
                                    }
                                },
                                {
                                    "term":{
                                            "shenhe":"1"
                                    }
                                }
                                ,
                                {
                                    "term":{
                                            "del":"0"
                                    }
                                } 
                            ]
                        }
                }
        }
    },
    "aggs":{
        "tongjis":{
            "terms":{
                "field":"endline.keyword",
                "size":20
            }
        }
    }
    
    
    
    
    
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进