sphinx結果集total和total_found的區別

原文地址:http://blog.sina.com.cn/s/blog_8dbf93a80101hjmi.html

參考:http://www.coreseek.cn/forum/2_345_0.html



sphinx.conf文件裏面有一個配製最大匹配數的參數max_matches ,默認值是1000假如一次搜索裏應該查詢到2000個匹配,但是在sphinx結果集中只會返回1000個匹配,因爲受到max_matches=1000的限制,這時候,結果集裏,

total=1000,total_found=2000,假設一頁顯示20條,那麼如果用total_found做爲分頁的總數來設定,在第51頁之後的數據都將顯示爲空白,因爲操過了1000條記錄.

於是,我修改了sphinx.conf裏的max_matches=2000,結果發現,改成2000之後還是沒有取到2000條記錄,在第51頁之後都是空白數據,爲什麼?

這時候我又去網上查了資料,發現,$s->SetLimits($start, $limit)的第三個參數,默認爲1000,這個參數也是用來設定返回的最大匹配數的,所以這就是這爲什麼配製文件裏改成2000後還是隻取到1000條記錄的原因...

還有一點,就是setLimits的第三個參數的值不能超過max_matches的值,否則將取不到記錄

所以,total_found返回的是所有的匹配數,不受max_matches和setLimits的第三個參數的限制,而total返回的匹配數最大不超過max_matches和setLimits裏的最小值

比如我們經常看到的,淘寶搜索返回的頁面最多隻返回100頁的數據,這時候,total和total_found就能很好的起到作用


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章