[Xunsearch PHP-SDK](http://www.xunsearch.com) v1.4.8 權威指南
1. [拼寫糾錯](#)
1. [搜索建議](#)
# 搜索建議和糾錯
這項功能也是建立在搜索日志的基礎上。
### 1. 拼寫糾錯[?]()
對于英文,由于打字速度過快或各種原因都很容易造成一兩個字母出錯。對于中文來說,古代就動不動出現同音”通假字“,絕大多數現代人也使用拼音輸入法,加上方言口音,亂用同音字現象非常普遍。
所以系統在綜合分析索引庫內的詞匯、用戶搜索日志基礎上建立了一個龐大的糾錯體系,支持英文拼寫糾錯、中文同音字糾錯、拼音轉換等。
使用這些功能都非常簡單,直接調用 [XSSearch::getCorrectedQuery](#) 即可,該方法接受搜索語句作為參數,如省略參數則直接使用最近一次 `setQuery` 的語句,返回值是修正詞匯組成的數組,若沒有更合適的修正方案則返回空數組。
~~~
// 假設在本意是在 demo 項目中搜索 "測試",但不小心打成了 "側試"
$search->setQuery('側試');
$docs = $search->search();
// 由于拼寫錯誤,這種情況返回的數據量可能極少甚至沒有,因此調用下面方法試圖進行修正
$corrected = $search->getCorrectedQuery();
if (count($corrected) !== 0)
{
// 有糾錯建議,列出來看看;此情況就會得到 "測試" 這一建議
echo "您是不是要找:\n";
foreach ($corrected as $word)
{
echo $word . "\n";
}
}
/**
* 以下拼寫示例則簡化,并直接傳入 Query 語句進行測試
* 您也可以例句用 `util/Quest.php demo --correct <word>` 進行測試
*/
$search->getCorrectedQuery('cs'); // 通過聲母縮寫得到建議: "測試"
$search->getCorrectedQuery('ceshi'); // 通過全拼縮寫得到建議: "測試"
$search->getCorrectedQuery('yunsearch'); // 通過拼寫糾錯得到: xunsearch
$search->getCorrectedQuery('xunseach 側試'); // 混合糾錯得到: xunsearch測試
~~~
> **Tip:** 建議在搜索結果數量過少或沒有時再嘗試進行拼寫糾錯,而不是每次搜索都進行。
### 2. 搜索建議[?]()
搜索建議是指類似百度那樣,當用戶在搜索框輸入少量的字、拼音、聲母時提示用戶一些相關的熱門關鍵詞列表下拉框供用戶選擇。
這樣做非常有利于節省用戶的打字時間、提升用戶體驗。
我們通過 [XSSearch::getExpandedQuery](#) 來讀取展開的搜索詞,該方法返回展開的搜索詞組成的數組,如果沒有任何可用詞則返回空數組。接受 2 個參數:
- `$query` 要展開的搜索詞,返回結果是以這個搜索詞為前綴、拼音前綴展開,此為必要參數
- `$limit` 整數值,設置要返回的詞數量上限,默認為 10,最大值為 20
~~~
/**
* 以下例子也可以用 `util/Quest.php demo --suggest <word>` 進行測試
*/
$search->getExpandedQuery('x'); // 返回:項目, xunsearch, 行為, 項目測試
$search->getExpandedQuery('xm'); // 返回:項目, 項目測試
$search->getExpandedQuery('項'); // 返回:項目, 項目測試
$search->getExpandedQuery('項目'); // 返回:項目測試
~~~
> **Tip:** 實際使用過程中,搜索建議通常單獨設計一個入口腳本,再在主搜索界面的搜索框中通過 `ajax、AutoComplete` 等 `JavaScript` 技術來根據用戶的輸入動態載入建議詞列表。
$Id$
[? 獲取相關搜索詞](#)
[按字段值分面搜索 ?](#)
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 授權許可證