Elasticsearch 随机查询(抽样查询)PHP 使用方法

    public function getTopicList($query,$size=1000,$page=0,$field=null,$IS_RANDOM){
        $params = [
            'size'      => $size,
            'index'     => 'mokao_bank_2',
            'type'      => 'mokao_bank_2',
            'body'      => [
                'query' => $query
            ]
        ];

        //查询条件query如下
        //$query = [
        //    'bool' => [
        //        'must' => [
        //            ['match' => [ 'subject_category_id' => $subject ]],
        //            ['match' => [ 'subject_type_id'     => $topicType ]],
        //            ['match' => [ 'is_hid'              => 0 ]],
        //            ['match' => [ 'is_del'              => 0 ]],
        //        ]
        //    ]
        //];

        if($field){
            $params['_source'] = $field;
        }

        if($page > 0){
            $from = ($page - 1) * $size;
            $params['from'] = $from;
        }
        $params['body']['sort']=[
            '_id'   => [
                'order' => 'asc'
            ]
        ];
        
        //抽样查询时排序替换为如下条件
        if($IS_RANDOM){
            $params['body']['sort'] = [
                '_script' => [
                    'script' => 'Math.random()',
                    'type'   => 'number',
                    'order'  => 'asc'
                ]
            ];
        }
        $return = $this->client->search($params);
        return $return['hits']['hits'];
    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值