本文主要是介绍PHP:集成Xunsearch生成前端搜索骨架,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
如果是安装宝塔,我们在集成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) - 开源免费中文全文搜索引擎
这篇关于PHP:集成Xunsearch生成前端搜索骨架的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!