迅搜xunsearch解决了40亿条数据1秒内检索速度,功能强大,内置了大量只有商业、大型搜索引擎才提供的功能。支持包括字段检索、搜索结果高亮显示、 字段排序、布尔语法、区间检索、聚合搜索、相关搜索、权重微调、拼音搜索、 搜索建议等等专业搜索引擎具备的功能,最重要的一点。可以移植到所有PHP语言开发的CMS上
目录
1xunsearch安装
2xunsearch项目配置
3php调用xunsearch进行搜索并高亮显示
xunsearch安装
1、运行下面指令先下载
wget http://www.xunsearch.com/download/xunsearch-full-latest.tar.bz2
2、解压安装包
tar -jxjf xunsearch-full-latest.tar.bz2
3、cd到解压后的安装文件内
4、执行安装文件
sh setup.sh
此处提示安装 目录为
/user/local/xunsearch
建议默认目录,等街约1分钟左右。安装完成
5、检查安装是否成功
检查/usr/ local/xunsearch/bin/ 有否
cd /usr/local/xunsearch/bin/ #切换到bin目录找xs-ctl.sh
6、启动命令
./xs-ctl.sh start #启动命令
注意:xunsearch默认是两个服务,一个索引服务默认8383端号。一个搜索服务默认8384端号
7、添加xunsearch到开机启动项
/usr/local/xunsearch/bin/xs-ctl.sh start
xunsearch项目配置
根据要查询的数据库的字段建立xssearch索引字段
字段名定义:[字段名]
字段类型:type=[类型]
字段类型有:
字符型:string,适用多数情况,也是默认值
数值型:numeric,包含整型和浮点数,仅当字段需用于以排序或区间检索时才设为该类型
日期型:date, 形式为YYYYmmdd 这样固定的8字节,
主键型:id,确保每条数据具备唯一-值,是索引更新和删除的凭据,id,确保每条数据具备唯一-值,是索引更新和删除的凭据,每个搜索项目必须有且仅有一个id字段,该字段的值不区分大小写
标题型:title,标题或名称字段,至多有一个该类型的字段
内容型:body, 主内容字段,即本搜索项目中内容最长的字段,至多只有一一个该类型字段,本字段不支持字段检索,至多只有一一个该类型字段,本字段不支持单独字段检索(为了提升效率)
官方项目配置工具
http://xunsearch.com/tools/iniconfig
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
php调用xunsearch进行搜索并高亮显示
<?php
include 'php/lib/XS.php';
try{
//创建
$xs=new XS('php/app/demo.ini');
print_r($xs);
//获取索引对像 增删改
$index=$xs->index;
// 获取搜索对象
$search=$xs->search;
$data=[
'pid'=>3,
'subject'=>'红葡萄酒?过期红葡萄酒11个巧妙利用方',
'message'=>'先将牛肉泡在红酒内再煮,建议用过期红酒自行调制沙拉酱,先用些红酒腌渍,仅先用红酒腌渍,就是有的葡萄酒还没来得及喝就过期了,教你过期红酒的利用方法,煎牛肉前,能再喝吗,将红酒与蜂蜜均匀混合,倒入淹过肉的红酒量,那么过期葡萄酒该怎么办呢,4、软化肉质,1、红酒面膜,3、让肉无血色,沙拉酱一般来说太过黏稠,对健康有加分效果,建议红酒浸泡时不要加入调味料,红酒内含有单宁,才不会让肉质变硬,接下来小编告诉大家过期葡萄酒的妙用方法,不会有血色流出,取一碟子加入红酒、盐、黑胡椒、橄榄油拌匀,葡萄酒是我们日常生活中常会喝',
'chrono'=>1640242715
];
$doc=new XSdocument($data);
// 增加索引数据
$index->add($doc);
//删除索引数据,传入主键或者数组
$index->del('主键');
//修改索引数据,传入$doc与add一样
$index->updata($doc);
print_r($search->getDbTotal());
//
} catch(XSException $e){
echo $e->getTracsAsString(); //有异常是抛出错误代码
}
?>