实践中 XunSearch(讯搜)的使用教程步骤
XunSearch(讯搜)的使用教程步骤
一、安装编译工具 yum install make gcc g++ gcc-c++ libtool autoconf automake imake mysql-devel libxml2-devel expat-devel
二、进入欲安装文件夹 例如:cd /usr/loacl/
运行下面指令下载、解压安装包
wget http://www.xunsearch.com/download/xunsearch-full-latest.tar.bz2
tar -xjf xunsearch-full-latest.tar.bz2执行安装脚本,根据提示进行操作,主要是输入
xunsearch
软件包的安装目录,强烈建议单独 规划一个目录,而不是混到别的软件目录中。cd xunsearch-full-1.3.0/
sh setup.sh第一次安装的话,过程可能会稍显漫长,请不必着急,您大可泡杯茶一边喝一边等待即可。
- 如果您的 SDK 调用和
xunsearch
服务端不在同一服务器,请使用 -b inet 方式启动脚本, 并注意借助类似iptables
的防火墙来控制xunsearch
的8383/8384
两个端口的访问权限。启动脚本用法举例如下,以下均为合法使用方式: 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端口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 #重启防火墙使配置生效
- 使用 netstat -anlpt 查看端口 (杀掉占用端口的进程 kill -9 进程id)
- 检测 PHP-SDK 的运行条件
$prefix/sdk/php/util/RequiredCheck.php $prefix #替换成你的安装目录
- 至此,安装和准备工作已经完成了,您可以开始使用 Xunsearch PHP-SDK 开发自己的搜索应用了。
- 建立索引 先创建要索引的数据库表
创建库: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调用部分
<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);
}
?>
实践中 XunSearch(讯搜)的使用教程步骤的更多相关文章
- 实践中 XunSearch(讯搜)更新索引方案对比
检测PHP-SDK的运行条件(查看是否支持XunSearch) $prefix/sdk/php/util/RequiredCheck.php $prefix #替换成你的安装目录 使用 XunSe ...
- Laravel写讯搜的ini配置文件的一处陷阱
讯搜客户端在连接服务端之前需要读取配置文件里的配置信息. 配置文件里, 我一开始这样写: server.index = 127.0.0.1:8383 ; 表示索引接口 server.search = ...
- php 全文搜索搜索-讯搜使用
相信很多朋友遇到过,需要全文搜索的场景,百度了一圈发现了一个xunsearch 首先本地采集了1万篇文章,发现效率还可以. 使用上也很简单,直接上代码 //接收关键词 $xs = new XS('xp ...
- 记一次小团队Git实践(中)
对于初学者,从使用上先入手,往往学的最快,并从中汲取教训,再回头更深入的学习,效果尤佳. 安装git 安装git自不必说,mac已经内置了git,linux下一个命令就能搞定,windows下需要下载 ...
- 编程实践中C语言的一些常见细节
对于C语言,不同的编译器采用了不同的实现,并且在不同平台上表现也不同.脱离具体环境探讨C的细节行为是没有意义的,以下是我所使用的环境,大部分内容都经过测试,且所有测试结果基于这个环境获得,为简化起见, ...
- 展讯NAND Flash高级教程【转】
转自:http://wenku.baidu.com/view/d236e6727fd5360cba1adb9e.html 展讯NAND Flash高级教程
- 实践中总结——理解haslayout和BFC
1.HASLAYOUT 首先,haslayout翻译成中文就是:有布局. 所谓布局,指的是一个元素可以对本身和里边的元素进行尺寸计算和定位.这里只是谈IE6/7,据说微软之所以不是对所有元素默认有布局 ...
- 谈谈在DevOps实践中,感觉最重要的这三个技术……
从国内众多DevOps实践中,我们能看到下面三个技术尤其重要和火热: 容器:容器从根本上解决了软件对环境的依懒性,解决了各个环境之间的差异问题:它可以加速部署的速度,提高部署的效率:降低部署的成本.容 ...
- Ionic2中腾讯Bugly异常捕获以及上报
Ionic2混合开发,入坑系列:Ionic2中腾讯Bugly异常捕获以及上报 1.Ionic2中处理全局异常,直接继承IonicErrorHandler即可,代码如下 import { IonicEr ...
随机推荐
- Post返回json中文乱码
来源:http://blog.csdn.net/xiaoxuonl/article/details/54315612 服务器返回的是utf-8,jsp页面上也是utf-8,数据库也是utf-8怎么就是 ...
- jquery中的globalEval()源码分析
//20170724 huanhua 定义成全局的变量 // 在谷歌浏览器下运行的: // function fun(){ eval('var a=1'); } 此时 定义的 a 就是局部的变量 // ...
- Eclipse设置类,方法注释模版
首先打开Eclipse配置选项:Window->Preference->Java->Code Style->Code Template 配置Comments下的每个选项的模版, ...
- Tensorflow图像处理以及数据读取
关于tensoflow的图像的处理,看到了一篇文章,个人觉得不错.https://blog.csdn.net/weiwei9363/article/details/79917942
- AS3语法和UNITY C#语法的异同
AS3 UNITY Sprite a = new Sprite(); trace(a.paent); 此时a.parent为null,还未AddChild到屏幕上, 一般用这个来判断在不在屏幕上 ...
- python中的集合
在python中,普通集合是可变数据类型 通过以下案例说明: >>> s = {1, 2, 3, 4} >>> id(s) 2108634636808 >&g ...
- Babel 6 概述
babel-core 只转换语法(如箭头函数) babel-polyfill 由core-js和regenerator runtime组成. 1 core-js用来支持新的全局变量(例如 Promis ...
- Hillstone目的地址转换DNAT配置
目的地址映射主要用于将内网的服务器对外进行发布(如http服务,ftp服务,数据库服务等),使外网用户能够通过外网地址访问需要发布的服务. 常用的DNAT映射有一对一IP映射,一对一端口映射,多对多端 ...
- java基础 -- 经典排序
---- 冒泡排序 方法: 1.每次比较相邻的两个数 2. 小的交换在前面 3.每轮结束后最大的数交换到最后 代码实现: /* * 冒泡排序 * */ public class SortNum { ...
- span的title标签中的换行
var strs = data.flowSummary; strs=strs.replace(/燮r燮n/g," "); js的全局替换用/要替换的字符串/g span的titl ...