如果是安装宝塔,我们在集成xunsearch的时候就会比较简单,后面我们在介绍其他的接入方式;
首先我们进入到宝塔管理后台:【软件商店】-【输入xun】-【点击xunsearch】直接安装即可
安装成功之后,会自动在www/server中创建xunsearch
我们将 【sdk】 -【php】 复制到你的站点extend下
然后再站点根目录下创建test.php进行测试,在进行测试前我们需要创建配置【非常关键】
a):如果需要做精确搜索建议对字段设定index=self,tokenizer = full,不然xunsearch会对字段做分词处理;
b):数字区间搜索需设定 type=numerice;
c):如需对字段进行模糊匹配tokenizer 可不设定,默认做scws分词,如字段存储的值为",6,7,8,"想搜索包含6或8的数据;
d):配置文件必须包含一个type=id的主键字段
接下来我们就开始配置:
如果我们不知道如何手写,官方也提供了生成ini的工具,具体可以参考手册
项目配置详解 - 权威指南 - 迅搜(xunsearch) - 开源免费中文全文搜索引擎
ini文件设计辅助工具 - 迅搜(xunsearch) - 开源免费中文全文搜索引擎
demo.ini【 xunsearch/app/demo.ini**】**
project.name = demo
project.default_charset = utf-8
server.index = 8383
server.search = 8384
[pid]
type = id
[subject]
type = title
[message]
type = body
[chrono]
type = numeric
test.php 【 站点根目录**】**
<?php
// // 确保Xunsearch扩展已经安装并启用
require_once 'extend/xunsearch/lib/XS.php';
// // 初始化Xunsearch的项目
$xs = new XS('demo');
$data = array(
'pid' => 234, // 此字段为主键,必须指定
'subject' => '5554444',
'message' => '测试文档的内容部分',
'chrono' => time(),
);
// 创建文档对象
$doc = new XSDocument;
$doc->setFields($data);
$index = $xs->index;
// 添加到索引数据库中
$index->add($doc);
$index->flushIndex();
echo "<br>";
echo "数据已成功添加到Xunsearch索引" . "\n";
$search = $xs->search;
$result = $xs->search->setQuery($where)
//->setSort('sku_id','asc') #按索引排序
->setDocOrder(true) #按添加索引排序(升序)
->setLimit($limit)
->search();
try {
// 遍历结果
foreach ($result as $document) {
echo "<br>";
// 打印文档的某些字段
echo $document->pid . ' - ' . $document->subject . ' - ' . $document->message ."\n";
}
} catch (\XSException $e) {
$result = $e->getMessage();
}
// 其他操作,如更新索引、优化索引等
?>
当然如果想针对查询词进行分词可以对其使用 XSTokenizerScws
测试结果:
如有疑问可以致邮 dingcho@kingbal.com 我们,一起探讨
测试成功,说明集成成功,我们可以执行命令自动生成前端搜索页面骨架
/www/wwwroot/www.tst.com/extend/xunsearch/util/SearchSkel.php demo /www/wwwroot/www.tst.com/xunsearch
生成完毕,访问页面即可
参考生成搜索代码文档:SearchSkel 生成搜索代码 - 权威指南 - 迅搜(xunsearch) - 开源免费中文全文搜索引擎