首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于值优先的Elasticsearch排序

基于值优先的Elasticsearch排序
EN

Stack Overflow用户
提问于 2015-06-23 12:20:56
回答 2查看 2.2K关注 0票数 1

我想在release date上对结果进行排序。我希望2015电影首先按照has_poster值排序,其余年份按has_poster值排序。所以我得到的结果是:

代码语言:javascript
复制
2015, 2015, 1989, 2017, 2006

等。

到目前为止这就是我所掌握的。

代码语言:javascript
复制
$params['index'] = 'movies';
$params['type']  = 'movie';
$params['body']['size'] = 50;
$params['body']['sort'] = array(
    array('has_poster'  => "desc"),
    array('_score'  => "desc"),
);        
$params['body']['query']['filtered'] = array(
    'query' => array(
        'query_string' => array(
            'query' => "survivor",
            'fields' => array('name', 'orig_title'),
            'default_operator' => "AND"
        ),
    )
);

我需要... ORDER BY FIELD(releasedate, 2015), has_poster DESC ...在MySQL中对应于Elasticsearch。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-06-23 12:37:27

你需要一个脚本排序:

代码语言:javascript
复制
{
  "sort": [
    {
      "_script": {
        "script": "if(doc['releasedate'].date.year==2015) return 1; else return 0;",
        "type": "number",
        "order": "desc"
      }
    },
    {
      "has_poster": "desc"
    }
  ]
}
票数 2
EN

Stack Overflow用户

发布于 2020-11-27 17:30:52

I不工作=>type名称是字符串

代码语言:javascript
复制
$params['body']['sort']= array('name' => 'desc' );

代码语言:javascript
复制
$params=[
                'index'=>'pets',
                'type'=>'bird',
                'body'=>[
                    'query'=>[
                        'bool'=>[
                            'must'=>[],
                            'filter'=>[
                                'range'=>[
                                    'registered'=>[
                                    'gte' => "2020-10-01", 
                                    'lte' => "2020-11-30"]
                                ]
                            ]
                        ]
                    ],
                    'sort'=>[
                        'name'=>[
                            'order'=>'asc'
                        ]
                    ]
                    
                ]
            ];

但不工作

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31002660

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档