安装
# xunSearch 讯搜
## 1、安装
1.下载并解压
地址:wget http://www.xunsearch.com/download/xunsearch-full-latest.tar.bz2
tar-xjf xunsearch-full-latest.tar.bz2
2.执行安装脚本
cdxunsearch-full-1.3.0/
./setup.sh
## 2、启动
/usr/local/xunsearch/bin/xs-ctl.shstart|stop|restart
设置开机自启动
vim/etc/rc.local
//在文件最后添加
/usr/local/xunsearch/bin/xs-ctl.shstart
设置环境变量
vim/etc/profile
追加: export PATH="/usr/local/xunsearch/bin:$PATH"
#启动后讯搜所占用的端口为8383和8384两个
使用(TP框架举例)
1. 首先将api相关文件放入到你项目下的Thinkphp/Library/Vendor中,是一个xunsearch的文件
a)
2. 在框架中的C层文件中利用vendor来进行引入增加索引。
其中的$arrs的字段要对应的是我们在api文件下的ini文件中我们先给出来的字段
其中我解释一下关键字进行匹配是根据type类型为body的字段进行的,其他的字段我们相当于存储一部分数据,对于不是够标识性字段但是又想存储的就使用string字段进行存储
3. 添加索引之后我们需要的就是使用我们添加在xunsearch’这套里面的数据
上面的是完全精准匹配,不含拼音纠错等功能
4. 纠错,拼音,拼音缩写
要用到这些比较智能的方法进行查找我们就要用到XSSearch下的方法
但是在这里有个官方文档并不详细的地方,那就是关于实例化XSSearch的连接
$xs2 = new XSSearch('localhost:8384',$xs);
应该是这样子的,为什么这里是8384的端口呢,这里可以返回看看我们ini文件中定义的server.search = 8384;
然后我们该如何使用纠错这些功能呢?
官方也提供了一些方法但是本人最喜欢用的是里面getCorrectedQuery方法,他可以返回你搜索的的字帮你纠错,拼音,缩写等给出一个数组
$res2 = $xs2->getCorrectedQuery(‘zc’);
这时候打印$res会得到:根据“zc”所得到的数据,然后我的思路是对这个数组进行循环的完全精准匹配,这样子我们就能得到我们想要的数据了
5. 关键字在标题和文章中进行高亮处理的方法
要实现以上的结果就是
用$search中的highlight传参是传的字段,这里我们传title这个字段进去高亮,返回的是这个字段的内容,但是关键字都被加上了em标签进行包裹,但是比如我们需要颜色改变之类的有挺多个方法,本人更倾向与在自己的JS中对相关块行级下的em标签进行更改样式:例如以下效果
/*搜索功能标题关键字标亮*/
$('.list1 em').css('color','red'); //采用了jq查改元素属性
这里要注意的是highlight关于第二个参数的传参(bool),false的时候会将匹配词拆开进行em包裹,也就是也不属于完全精确匹配关键词了,比如‘藏族风俗习惯’为关键词,他就会对‘藏族的古代风俗’中的‘藏族’和‘风俗’进行em标签包裹,但是第二个参数传了true的话就不会对‘藏族的古代风俗’进行任何标签包裹