獲取搜索匹配數(shù)量

2019-08-14 14:15 更新

出于性能考慮,搜索結(jié)果的匹配數(shù)量均被設(shè)計(jì)為估算值,并非準(zhǔn)確值。

1. 索引庫(kù)內(nèi)的數(shù)據(jù)總數(shù)

這個(gè)數(shù)量是真實(shí)準(zhǔn)確的,并非估算,獲取總量有以下兩種做法,至于喜歡用哪種您自己決定。

$total = $search->dbTotal;
$total = $search->getDbTotal();

2. 最近一次搜索的匹配數(shù)

通過(guò) XSSearch::getLastCount 或 XSSearch::lastCount 可以快速獲取到最近一次調(diào)用 XSSearch::search 進(jìn)行搜索時(shí)得到的匹配數(shù)量。

除非您對(duì)搜索結(jié)果完全不關(guān)心,否則強(qiáng)烈建議用這種方法獲取匹配數(shù)目以減少系統(tǒng)開(kāi)銷。

// 假設(shè)曾經(jīng)有一次 search 調(diào)用
$docs = $search->setQuery('測(cè)試')->setLimit(5)->search(); 
// 必須在 search() 之后調(diào)用
$count = $search->lastCount;
$count = $search->getLastCount();

3. 直接獲取搜索匹配數(shù)

通過(guò) XSSearch::count 調(diào)用可以直接獲取搜索的匹配數(shù)量,該方法和 XSSearch::search 類似,在調(diào)用前可以做一系列的搜索查詢語(yǔ)句構(gòu)建,也可以直接接受查詢語(yǔ)句做參數(shù)。

返回值是一個(gè)整型數(shù)字,是估算值。

// 先設(shè)置 Query 再獲取數(shù)量
$count = $search->setQuery('神雕俠侶 -電視劇')->count(); 
// 直接把 Query 語(yǔ)句傳入
$count = $search->count('杭州 西湖');

Tip: 對(duì)于不帶參數(shù)的 count 調(diào)用建議放在 search 之后,內(nèi)部會(huì)進(jìn)行優(yōu)化,減少一次查詢。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)