XunSearch(讯搜)的使用教程步骤

一、安装编译工具 yum install make gcc g++ gcc-c++ libtool autoconf automake imake mysql-devel libxml2-devel expat-devel 

二、进入欲安装文件夹 例如:cd /usr/loacl/

  1. 运行下面指令下载、解压安装包

    wget http://www.xunsearch.com/download/xunsearch-full-latest.tar.bz2
    tar -xjf xunsearch-full-latest.tar.bz2
  2. 执行安装脚本,根据提示进行操作,主要是输入 xunsearch 软件包的安装目录,强烈建议单独 规划一个目录,而不是混到别的软件目录中。

    cd xunsearch-full-1.3.0/
    sh setup.sh

    第一次安装的话,过程可能会稍显漫长,请不必着急,您大可泡杯茶一边喝一边等待即可。

  3. 如果您的 SDK 调用和 xunsearch 服务端不在同一服务器,请使用 -b inet 方式启动脚本, 并注意借助类似 iptables 的防火墙来控制 xunsearch 的 8383/8384 两个端口的访问权限。启动脚本用法举例如下,以下均为合法使用方式:
  4. bin/xs-ctl.sh -b local start    // 监听在本地回环地址 127.0.0.1 上
    bin/xs-ctl.sh -b inet start // 监听在所有本地 IP 地址上
    bin/xs-ctl.sh -b a.b.c.d start // 监听在指定 IP 上 我是不在同一服务器上,因此我选择这一种(bin/xs-ctl.sh -b 195.241.23.32 start)
    bin/xs-ctl.sh -b unix start // 分别监听在 tmp/indexd.sock 和 tmp/searchd.sock
    启动
    启动/重新启动 xunsearch 的后台服务$prefix 替换为你的xunsearch安装目录
    
    
    cd $prefix; 
    bin/xs-ctl.sh restart
    添加到开机启动脚本,在 Linux 系统中将脚本指令$prefix/bin/xs-ctl.sh restart写进 /etc/rc.local 即可
    配置防火墙,开启8383端口、8384端口
  5. vi /etc/sysconfig/iptables
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 8383 -j ACCEPT #允许8383端口通过防火墙
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 8484 -j ACCEPT #允许8384端口通过防火墙

    /etc/init.d/iptables restart #重启防火墙使配置生效

  6. 使用 netstat -anlpt 查看端口  (杀掉占用端口的进程 kill -9 进程id)
  7. 检测 PHP-SDK 的运行条件 
    $prefix/sdk/php/util/RequiredCheck.php $prefix #替换成你的安装目录
  8. 至此,安装和准备工作已经完成了,您可以开始使用 Xunsearch PHP-SDK 开发自己的搜索应用了。
  9. 建立索引  先创建要索引的数据库表
    创建库:CREATE DATABASE `test2` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
    创建表:……
    先在/usr/local/xunsearch/sdk/php/app配置ini文件:

    project.name = source

    project.default_charset = utf-8

    server.index = 23.27.127.32:8383
    server.search = 23.27.127.32:8384

    [id]
    type = id

    [product_name]
    type = title

    [product_model]
    index = self

    导入mysql数据到xunsearch里面:/usr/local/xunsearch/sdk/php/util/Indexer.php --rebuild --source=mysql://yourdbuser:yourdbpass@localhost/yourdbname --sql="select id,product_name,product_model from products" --project=source

     以上为服务器部分 以下为php调用部分

  10. <html>
    <head>
    <meta http-equiv="content-type" content="text/html;charset=gbk" />
    <title>coreseek中文全文搜索在php程序中的应用</title>
    </head>
    <body>
    <h3><font color="blue">coreseek全文搜索在php程序中应用</font></h3>
    <form action="test2.php" method="post">
    输入搜索的关键词:<input type="text" name="keyword" size="30" <?php echo $_POST['keyword'];?> />
    <input type="submit" name="sub" value="搜索" />
    </form>
    <hr />
    <?php
    echo "<pre />";
    #引入接口文件,其实你懂的,就是一个类
    require './lib/XS.php'; // 引入 xunsearch sdk
    if(isset($_POST['sub']) && $_POST['keyword'] != ''){
    $keyword = trim($_POST['keyword']); //接收关键词
    $xs = new XS('source'); // demo 为项目名称,配置文件是:$sdk/app/demo.in i
    //$index = $xs->index; // 获取索引对象
    $search = $xs->search; // 获取搜索对象
    $search->setLimit(20);
    $docs = $search->setQuery( $keyword)->search(); // 搜索 ‘ 测试’ echo "<table border='1' bordercolor='green' cellspacing='0'><tr><th>标题</th></tr>";
    foreach ($docs as $doc) {
    $subject = $search->highlight($doc->product_name); // 高亮处理标题
    echo "<tr><td>".$subject."</td></tr>";
    }
    echo "</table>"; // $search->setQuery($keyword);
    // // 获取前 6 个和默认搜索语句 "西湖" 相关搜索词
    // $words = $search->getRelatedQuery();
    // print_r($words);
    }
    ?>
 
 

posted on 2016-04-06 12:14 长不大的菜鸟 阅读(1865) 评论(1) 编辑 收藏

实践中 XunSearch(讯搜)的使用教程步骤的更多相关文章

  1. 实践中 XunSearch(讯搜)更新索引方案对比

    检测PHP-SDK的运行条件(查看是否支持XunSearch)   $prefix/sdk/php/util/RequiredCheck.php $prefix #替换成你的安装目录 使用 XunSe ...

  2. Laravel写讯搜的ini配置文件的一处陷阱

    讯搜客户端在连接服务端之前需要读取配置文件里的配置信息. 配置文件里, 我一开始这样写: server.index = 127.0.0.1:8383 ; 表示索引接口 server.search = ...

  3. php 全文搜索搜索-讯搜使用

    相信很多朋友遇到过,需要全文搜索的场景,百度了一圈发现了一个xunsearch 首先本地采集了1万篇文章,发现效率还可以. 使用上也很简单,直接上代码 //接收关键词 $xs = new XS('xp ...

  4. 记一次小团队Git实践(中)

    对于初学者,从使用上先入手,往往学的最快,并从中汲取教训,再回头更深入的学习,效果尤佳. 安装git 安装git自不必说,mac已经内置了git,linux下一个命令就能搞定,windows下需要下载 ...

  5. 编程实践中C语言的一些常见细节

    对于C语言,不同的编译器采用了不同的实现,并且在不同平台上表现也不同.脱离具体环境探讨C的细节行为是没有意义的,以下是我所使用的环境,大部分内容都经过测试,且所有测试结果基于这个环境获得,为简化起见, ...

  6. 展讯NAND Flash高级教程【转】

    转自:http://wenku.baidu.com/view/d236e6727fd5360cba1adb9e.html 展讯NAND Flash高级教程

  7. 实践中总结——理解haslayout和BFC

    1.HASLAYOUT 首先,haslayout翻译成中文就是:有布局. 所谓布局,指的是一个元素可以对本身和里边的元素进行尺寸计算和定位.这里只是谈IE6/7,据说微软之所以不是对所有元素默认有布局 ...

  8. 谈谈在DevOps实践中,感觉最重要的这三个技术……

    从国内众多DevOps实践中,我们能看到下面三个技术尤其重要和火热: 容器:容器从根本上解决了软件对环境的依懒性,解决了各个环境之间的差异问题:它可以加速部署的速度,提高部署的效率:降低部署的成本.容 ...

  9. Ionic2中腾讯Bugly异常捕获以及上报

    Ionic2混合开发,入坑系列:Ionic2中腾讯Bugly异常捕获以及上报 1.Ionic2中处理全局异常,直接继承IonicErrorHandler即可,代码如下 import { IonicEr ...

随机推荐

  1. echarts 设置数据加载遮罩层

    //显示加载数据的loading        chart.showLoading({            text: "图表数据正在努力加载...",            x ...

  2. mysql学习二、SQL常用数据类型

    一.常用数据类型 二.选择数据类型的原则: 1 业务需要 2 满足第一个条件下,需要存储空间最小的. 三.常用的选择数据类型思路:

  3. SVN使用教程总结(转载)

    SVN简介: 为什么要使用SVN? 程序员在编写程序的过程中,每个程序员都会生成很多不同的版本,这就需要程序员有效的管理代码,在需要的时候可以迅速,准确取出相应的版本. Subversion是什么? ...

  4. spring项目启动时执行任务

    https://www.jianshu.com/p/745868a34379

  5. C#使用File.Create()创建文件后资源被占用

    由于文件被占用不能读写,所以报错“另一个程序正在使用此文件进程无法访问” 解决方法是在创建文件后立即Dispose掉 File.Create(path).Dispose();

  6. android sdk更新后出现please update ADT to the latest version的解决方法

    参考:https://www.cnblogs.com/wicub/p/3613353.html 把 1.修改android-sdk-windows/tools/lib下的plugin.pro文件,用记 ...

  7. 含有Date属性的对象转化为Json

    含有Date类型属性的对象,转化为Json,Date属性并不是时间戳格式. 解决方法: 使用Jackson的注解@JsonFormat,添加到对象属性上方即可. 我们的北京时间会相差8个小时,因为我们 ...

  8. python测试开发django-2.templates模板与html页

    前言 Django 中的视图的概念是一类具有相同功能和模板的网页的集合.通俗一点来说,就是你平常打开浏览器,看到浏览器窗口展示出来的页面内容,那就是视图.前面一章通过浏览器访问http://127.0 ...

  9. Floyd-Warshall算法计算有向图的传递闭包

    Floyd-Warshall算法是用来求解所有结点对最短路径的知名算法,其还有一个重要的用途就是求解有向图的传递闭包,下面就让我来介绍算法导论中关于有向图闭包计算的有关记载吧. 有向图的传递闭包:我们 ...

  10. [leetcode]92. Reverse Linked List II反转链表2

    Reverse a linked list from position m to n. Do it in one-pass. Note: 1 ≤ m ≤ n ≤ length of list. Exa ...