[reason] => No search type for [count]

来源:5-9 使用yii2-elasticsearch组件将ES集成到Yii2当中完成商品检索(2)

架构师是怎样炼成de

2017-11-23

这里做elasticsearch搜索分页的时候

使用$count = $searchModel->count(); 

报出这个错误 [reason] => No search type for [count]

$searchModel = ProductSearch::find()->query([
    "multi_match" => [
        "query" => $keyword,
        "fields" => ["name", "descr"],
    ],
]);
$count = $searchModel->count();

使用$count = $searchModel->all();是可以的

query方法里的count()是这样的

public function count($q = '*', $db = null)
{
    // TODO consider sending to _count api instead of _search for performance
    // only when no facety are registerted.
    // http://www.elastic.co/guide/en/elasticsearch/reference/current/search-count.html
    // http://www.elastic.co/guide/en/elasticsearch/reference/1.x/_search_requests.html

    $options = [];
    $options['search_type'] = 'count';

    return $this->createCommand($db)->search($options)['hits']['total'];
}


写回答

2回答

Jason

2017-11-28

你的ES版本跟我的一样吗?

0
0

架构师是怎样炼成de

提问者

2017-11-23

老师这个query使用count()方法错误

0
0

Yii2.0进阶版 高级组件ES/Redis/Sentry优化京东平台

进阶更高阶的Yii 2.0开发,获得2-3年yii 2.0实战经验

514 学习 · 210 问题

查看课程