[Xunsearch PHP-SDK](http://www.xunsearch.com) v1.4.8 權威指南
1. [適用情況](#)
1. [用法詳細示范](#)
# 按字段值分面搜索
分面搜索在英文中通常表述為 `Facets Search`,被檢索的數據通具有多維度屬性。例如一本書包含主題、作者、年代等,而分面搜索是指通過事物的這些屬性不斷篩選、過濾搜索結果的方法,可以將分面搜索看成搜索和瀏覽的結合。
如果您還是不清楚它的概念,敬請參閱[這篇文章](http://cdc.tencent.com/?p=1401)。
### 1. 適用情況[?]()
在 `xunsearch` 中,分面搜索是按照字段的值來實現的,為了結合條件做篩選搜索,支持分面的字段需要進行索引,而它的分詞方式最好必須是 `full` 即整值索引。
### 2. 用法詳細示范[?]()
以論壇文章搜索為例,每篇文章均屬于不同版塊(字段為 fid)、不同的發表年份(字段為 year),我們需要在搜索結果中按年份、版塊顯示匹配的文章數。
那么在構建搜索語句時使用 [XSSearch::setFacets](#) 方法來指定需要分面的字段,該方法接受兩個參數,第一參數為要分面的字段名稱(多個字段請用數組作參數),第二參數是可選的布爾類型,true 表示需要準確統計,默認 false 則為估算。
執行搜索之后再調用 [XSSearch::getFacets](#) 方法可取回分面搜索結果。
~~~
// 在搜索時加入分面設置
$docs = $search->setQuery('關鍵詞')->setFacets(array('fid', 'year'))->search();
// 讀取分面結果
$fid_counts = $search->getFacets('fid'); // 返回數組,以 fid 為鍵,匹配數量為值
$year_counts = $search->getFacets('year'); // 返回數組,以 year 為鍵,匹配數量為值
// 遍歷 $fid_counts, $year_counts 變量即可得到各自篩選條件下的匹配數量
foreach ($fid_counts as $fid => $count)
{
echo "其中版塊ID為 $fid 的匹配數為: $count\n";
}
// ...
// 通常可以循環生成新的搜索鏈接,在搜索鏈接中加入字段搜索條件即可
// ...
// 然后像往常一樣使用 $docs 顯示文檔
~~~
> **Tip:** 出于性能考慮,分面搜索返回的匹配數量默認是估算的,比實際數量可能會偏小。 如果您確實需要得到精確數字,請將 [XSSearch::setFacets](#) 的第二參數設為 true 。
> 此外,分面搜索僅針對字段值較短的情況,當字段值的長度超過 **255** 字節時會被忽略而不參與統計。
> 每次搜索最多同時支持 **8** 個字段進行分面搜索,分面字段必須是“字符串”類型。
$Id$
[? 搜索建議和糾錯](#)
[RequiredCheck 運行檢測 ?](#)
Copyright ? 2008-2011 by [杭州云圣網絡科技有限公司](http://www.xunsearch.com)
All Rights Reserved.



- 權威指南
- 新手上路
- 最新主要變動
- 概述
- 關于 Xunsearch PHP-SDK
- 安裝、升級
- 體驗 demo 項目
- 開發規范
- 開發流程
- 了解基礎對象
- 基礎對象概述
- XS 項目
- XSException 異常
- XSDocument 文檔
- XSIndex 索引管理
- XSSearch 搜索
- XSTokenizer 分詞接口
- 編寫項目配置文件
- 項目配置詳解
- 自定義分詞器
- 編寫第一個配置文件
- 管理索引
- 索引概述
- 添加文檔
- 更新、修改文檔
- 刪除文檔
- 清空索引
- 平滑重建索引
- 使用索引緩沖區
- 自定義SCWS詞庫
- 使用搜索
- 搜索概述
- 構建搜索語句
- 獲取搜索匹配結果
- 獲取搜索匹配數量
- 獲取熱門搜索詞
- 獲取相關搜索詞
- 搜索建議和糾錯
- 按字段值分面搜索
- 使用輔助工具
- RequiredCheck 運行檢測
- Indexer 索引管理器
- Quest 搜索測試工具
- SearchSkel 生成搜索代碼
- IniWizzard 配置文件向導
- Logger 搜索日志管理
- 專題
- 同義詞搜索功能
- 在SDK中使用SCWS分詞
- API 指南
- XS
- XS
- XSCommand
- XSComponent
- XSDocument
- XSErrorException
- XSException
- XSFieldMeta
- XSFieldScheme
- XSIndex
- XSSearch
- XSServer
- XS.tokenizer
- XSTokenizer
- XSTokenizerFull
- XSTokenizerNone
- XSTokenizerScws
- XSTokenizerSplit
- XSTokenizerXlen
- XSTokenizerXstep
- XS.util
- XSCsvDataSource
- XSDataFilter
- XSDatabaseDataSource
- XSDebugFilter
- XSJsonDataSource
- XSUtil
- XS.util.db
- XSDatabase
- XSDatabaseMySQL
- XSDatabaseMySQLI
- XSDatabasePDO
- XSDatabasePDO_MySQL
- XSDatabasePDO_PgSQL
- XSDatabasePDO_SQLite
- XSDatabasePgSQL
- XSDatabaseSQLite
- XSDatabaseSQLite3
- XS.utilf
- XSDataSource
- 其它文檔
- 關于 xunsearch
- 特色和優勢
- Xunsearch 架構簡圖
- 下載 Xunsearch
- 商業服務與支持
- XunSearch 授權許可證