[Xunsearch PHP-SDK](http://www.xunsearch.com) v1.4.8 權威指南
1. [什么是索引?](#)
1. [如何開始使用索引?](#)
1. [如何更換索引庫?](#)
1. [索引更新是異步行為](#)
# 索引概述
### 1. 什么是索引?[?]()
索引在 `Xunsearch` 中泛指用于檢索的數據庫文件總稱。每一次檢索數據均為訪問和讀取索引文件,每一次更新數據則是對索引文件的修改。
`Xunsearch` 每個搜索項目的索引數據是分開單獨存放的,索引本質上是一系列預設計文件,內部都是特別設計的 `Tree` 結構,但這些東西不是這份指南所關注的。假設一個項目的名稱為 `demo` (即 `INI` 文件中 `project.name` 的值),那么它在服務端的索引數據的存儲路徑為:
~~~
$prefix/data/demo
~~~
該目錄底下包含 2 個主要索引數據庫,分別是
- `db` 默認的主索引數據庫,各種檢索數據均存放在此
- `log_db` 搜索日志數據庫,用于存放搜索日志相關,用于實現相關搜索、搜索建議、拼音搜索等
### 2. 如何開始使用索引?[?]()
在 `PHP-SDK` 中,索引管理由類型為 [XSIndex](#) 的對象所維護。在 [XS](#) 項目中,通過讀取[XS::index](#) 屬性來獲取索引管理對象,然后展開各種操作,而不是自行創建對象。后面章節中的相關測試代碼如果沒有特別編寫,其中的 `$index` 均為通過類似以下的方式獲取的索引對象:
~~~
require '$prefix/sdk/php/lib/XS.php';
$xs = new XS('demo'); // 建立 XS 對象,項目名稱為:demo
$index = $xs->index; // 獲取 索引對象
~~~
索引的維護包括數據修改/更新、數據刪除、添加數據等操作,由后面的篇幅分開詳細講解。
### 3. 如何更換索引庫?[?]()
默認使用的索引庫名稱為 `db`,對應到服務端的 `$prefix/data/$name/db`,一般開發時不需要關注這個本質。但如果您的索引數據庫相當大,希望對索引庫進行適當的分割,可以自命名新的索引庫。在搜索時可以使用 [XSSearch::addDb](#) 進行多庫并行搜索。
~~~
// 比如把當前索引更新到名稱為 db2 的庫中
$index->setDb('db2');
// 在檢索時同時搜索 db, db2 的作法,具體參考搜索的有關章節
...
$search->addDb('db2')->setQuery(...)->search();
~~~
### 4. 索引更新是異步行為[?]()
有必要指出的是,出于性能優化設計,所有的索引操作(包含添加、刪除、修改文檔)均是異步的行為。也就是說在 `PHP-SDK` 的相關 `API` 返回后,只是說明已經將索引變動提交到操作隊列中,而并不是已經立即更新到磁盤上的索引數據庫文件。因此,搜索結果將不能立即體現出您的變動。
但請放心,這個時間差我們已經控制在非常合理的范圍內,通常是若干秒。
> **Note:** 特別說明,索引清空是同步操作,立即生效。如果確實有必要,您可以以使用 [Indexer](#)的 `--flush` 選項來強制刷新索引。
$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 授權許可證