Resources
Composer 支持
¶
自 v1.4.9 起,通过 subtree 功能将 xs-sdk-php 分离成为一个只读的子仓库,
以支持通过
composer
安装。我们的包名称为
hightman/xunsearch
,内含全部 PHP-SDK 的库文件,还包括支持 Yii 的扩展类。
安装
¶
和绝大多数 composer 一样,你可以通过以下两种方法中的任意一种安装。
可以直接运行
composer require --prefer-dist hightman/xunsearch "*@beta"
或者将以下内容添加到您的项目根目录 composer.json
中的 require
章节,
然后运行 composer install
"hightman/xunsearch": "*@beta"
Tip: 如果您打算用代码仓库中的最新版本,请将星号改为 dev-master。
命令行工具 ¶
vendor/bin/xs help
Yii-1.x 用法 ¶
这是对 xunsearch 的一个简单封装,使之更适合 yii-1.x 的用法习惯。首先,
在应用入口文件最开头引入 composer 的 autoload 文件,通常是 index.php。
require_once 'vendor/autoload.php';
在应用配置文件的 compnents
中添加以下代码,通常是 protected/config/main.php
'components' => array(
'search' => array(
'class' => 'EXunSearch',
'project' => 'demo',
'charset' => 'utf-8',
然后就可以通过 Yii::app()->search
来访问 EXunSearch
对象,进行索引管理或检索。
添加、修改索引数据,使用方法参照 XSIndex。
对于 ActiveRecord 对象来讲,建议在相关的 afterSave
和 afterDelete
中进行索引同步。
$data = array('pid' => 1234, 'subject' => '标题', 'message' => '内容');
Yii::app()->search->add($data);
Yii::app()->search->update($data);
Yii::app()->search->del('1234');
使用检索功能时,可以将 Yii::app()->search
当作 XSSearch 对象一样直接使用它的全部方法。
Yii::app()->search->setQuery('subject:标题');
$docs = Yii::app()->search->setLimit(5, 10)->search();
Yii-2.x 用法 ¶
在 yii2 中,除了提供类似 yii-1.x 的调用方式外,我们还支持 ActiveRecord 方式来操作。首先,
请在应用配置文件的 components
中添加以下代码,通常是 config/web.php
'components => [
// ... other components ...
'xunsearch' => [
'class' => 'hightman\xunsearch\Connection', // 此行必须
'iniDirectory' => '@app/config', // 搜索 ini 文件目录,默认:@vendor/hightman/xunsearch/app
'charset' => 'utf-8', // 指定项目使用的默认编码,默认即时 utf-8,可不指定
接下来,你可以通过以下代码获取到 hightman\xunsearch\Database
对象,该对像和 yii-1.x 的
EXunSearch
用法很相似,通过魔术方法,能够依次检索以下对象的方法列表而直接调用:
$db = \Yii::$app->xunsearch->getDatabase('demo');
$db = \Yii::$app->xunsearch('demo');
$xs = $db->xs;
$search = $db->getSearch();
$index = $db->getIndex();
XS 优先调用该对象方法,如有必要,可直接通过 hightman\xunsearch\Database::$xs
属性访问。
XSIndex 紧接着检查索引管理方法,如有必要,可直接通过 hightman\xunsearch\Database::$index
属性访问。
XSSearch 紧接着检查索引管理方法,如有必要,可直接通过 hightman\xunsearch\Database::$search
属性访问。
具体用法不再赘述,下面重点讲讲如何通过 ActiveRecord 方法来检索和创建索引,由于遵循 yii2 的思想进行开发设计,
使用起来非常方便和简单。
创建 AR 对象 ¶
首先必须创建一个继承自 hightman\xunsearch\ActiveRecord
的模型类,默认情况下会以全小写的类名字作为
ini 文件名。如需指定,请自行覆盖编写 hightman\xunsearch\ActiveRecord::projectName()
。通常代码如下:
class Demo extends \hightman\xunsearch\ActiveRecord