zoukankan      html  css  js  c++  java
  • Xunsearch的使用总结

    安装

    # 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的话就不会对‘藏族的古代风俗’进行任何标签包裹



  • 相关阅读:
    深入学习JavaScript: apply 方法
    javascript中的sort()方法
    vertical-align的用法
    js中window.onload与jquery$(document).ready()的区别
    js两种定义函数的方式(调用声明先后的区别)
    jquery插件写法的模板
    对兼容ie浏览器所遇到的问题及总结
    ie 6下使用jquery的mouseover会出现抖动现象的解决方法
    清除ie8下input file 文件域的值的方法
    fabric简介(二)
  • 原文地址:https://www.cnblogs.com/hoewang/p/10257255.html
Copyright © 2011-2022 走看看