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

2019-08-14 14:15 更新

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

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

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

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

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

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

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

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

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

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

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

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

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


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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號