[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.
![](https://box.kancloud.cn/2015-09-10_55f11d02e5cdb.gif)
![](https://box.kancloud.cn/2015-09-10_55f11d02ef863.gif)
![](https://box.kancloud.cn/2015-09-10_55f11d03028f9.gif)
- 权威指南
- 新手上路
- 最新主要变动
- 概述
- 关于 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 授权许可证