獲取搜索匹配數量

2019-08-14 14:15 更新

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

1. 索引庫內的數據總數

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

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

2. 最近一次搜索的匹配數

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

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

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

3. 直接獲取搜索匹配數

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

返回值是一個整型數字,是估算值。

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

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


以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號