elasticsearch搜索结果null

时间:2015-08-17 10:17:32

标签: php elasticsearch

我需要为弹性搜索数据库设置一个简单的条件,如果结果为null,则表明搜索结果不存在。

$result = $client->search($params);

但是在弹性搜索中,当结果为偶数时,它返回---

Array (
    [took] => 1 
    [timed_out] => 
    [_shards] => Array ( 
        [total] => 2 
        [successful] => 2
        [failed] => 0 
    ) 
    [hits] => Array (
        [total] => 0 
        [max_score] => 
        [hits] => Array ( ) 
    )
)

因此,当我设置条件以检查结果是否为空时,由于前一行,它将永远不会执行。

if ($result != null ){
    echo ($result); 
} else {
   echo "Your search doesnot exists";
}

因此,当结果返回空时,如何简单地设置弹性搜索的条件。

2 个答案:

答案 0 :(得分:1)

ElasticSearch返回hits数组中的实际搜索内容。

您可以检查hits['total']以获取与您的查询匹配的项目数以及hits['hits']数组中所有单个项目退出。

答案 1 :(得分:1)

尝试:

     if ($result['hits']['total'] > 0 ){
                echo ($result); 
            } else {
                echo "Your search doesnot exists";
            }