XunSearch的使用
一、项目的配置文件
1、要想使用xunsearch,首先需要进行配置文件的配置。
默认目录在app下,如下面的结构,每一个搜索项目都需要有一个ini文件进行相应的配置。
举例:
project.name = novel
project.default_charset = utf-8
server.index = 8383
server.search = 8384[novel_id]
type = id[title]
type = title[author_name][description]
type = body[last_time]
type = date
2、每个字段用一个区段配置来表示,中括号内的名字即为字段名。每个项目包含若干个字段,具体由项目搜索需求决定,并不需一味的与实际源数据库 (如 MYSQL) 一致,而只需要设计搜索功能所涉及的字段即可。
3、这里为了安全起见,我同样对查询出的数据起了别名,进而一一对应xunsearch中ini文件定义的字段(第三部分可以看到)。
chm手册下载地址:http://www.xunsearch.com/site/download/xs_php_manual.chm
建议如果初次使用xunsearch,则从手册最开始跟着操作一遍。尤其是新手上路部分。
注:在线生成编辑配置文件ini http://www.xunsearch.com/tools/iniconfig
二、生成骨架文件【建议最好执行这步,节省很多开发时间】
文档地址:http://www.xunsearch.com/doc/php/guide/util.skel
三、从数据库查询出需要的数据,并且将数据添加到xunsearch索引数据库
这里,我是在我外层定义了一个php文件来完成添加数据到XunSearch索引数据库的操作,代码如下
<?php
//require '/data/xun/lib/XS.php';
require './lib/XS.php';$XS = new XS('novel');// 建立 XS 对象,项目名称为:novel
$index = $XS->index; // 获取 索引对象//创建pdo对象,并从表中读出需要的数据
$dsn = "mysql:dbname=test;host=127.0.0.1";
$pdo = new PDO($dsn,'root','123456');
$sql = "select comic_id as novel_id,name as title,pen_name as author_name,description,last_verify_time as last_time from front_comic";
$stmt = $pdo->query($sql);
$data = $stmt->fetchAll(2);//循环添加数据到XunSearch索引库
foreach ($data as $v){// 创建文档对象$doc = new XSDocument();$doc->setFields($v);// 添加到索引数据库中$res = $index->add($doc);
}$res = $res ? 'success' : 'fail';
echo $res;
执行a.php文件,则从数据库查询出来的数据就添加到XunSearch索引数据库中了。
四、演示效果
这里,访问之前我们生成的对应的骨架文件就可以看到效果了。
到这里,基本的全文检索就已经实现了。
总结:
1、XunSearch全文检索的原理就是将mysql数据库中的我们需要的数据查询出来,并一一对应的添加到XunSearch的索引数据库中,然后,用户在前端查询的时候,就直接查询的是Xunsearch索引数据库中的内容了。这样,可以说速度就变得非常非常快了。
2、在项目中引入XunSearch或者sphinx等全文检索工具,则会大大降低mysql的压力,并且能够更快速的检索出用户需要的数据,无疑体验会更加好。
3、XunSearch索引数据库的文件默认存储在/usr/local/xunsearch/data/项目名 中,每一个项目有自己独立的一个存储库,如下:
4、进入novel项目的存储库,我们可以看到三个文件,一个是存储数据的,一个是存储日志的,一个是存储搜索记录的
值得注意的是:在测试演示效果的时候,由于xunsearch数据库并不是你这边刚提交完,那边数据就直接更新了,而是异步的(默认大概每两个小时才更新一次),所以,为了更快速的看到效果,我们需要手动去刷新,如下:
util/Indexer.php --flush-log novel
XunSearch的使用相关推荐
- xunsearch 迅搜初探
2014年1月2日 19:34:12 1 [root@localhost bin]# ./php /usr/local/lamp/xunsearch/sdk/php/util/Quest.php de ...
- xunsearch mysql,如何使用xunsearch
1 安装 1.1 安装依赖环境 apt-get install php build-essential zlib1g-dev php-mysql -y 1.2 安装xunSearch程序 ./set ...
- xunsearch php,GitHub - ziyueit/xunsearch: 迅搜的一个PHP封装类
xunsearch xunsearch的一个PHP封装类 目录结构说明 www WEB部署目录 ├─php xunsearch-1.4. ...
- xunsearch安装使用
目录 1.下载 2.进入,安装 3.安装成功后,启动后台服务 4.安装PHP-SDK 安装步骤 1.下载 wget http://www.xunsearch.com/download/xunsearc ...
- XunSearch的安装和加入服务器开机脚本以及将目录写入系统变量
一.安装xunserach 1.cd ~ 2.wget http://www.xunsearch.com/download/xunsearch-full-latest.tar.bz2 #下载最新xu ...
- mysql全文索引thinkphp_ThinkPHP5 使用迅搜 (XunSearch) 实现全文检索实例指导
前期准备 入坑了一天,折腾的无语,个人观点:[文档太差,适合学习思路,不建议入坑] 背景 最近在整理全文检索解决方案 注意到 xunsearch 的评价很高,在此记录一番 场景描述 此处作为对 xun ...
- linux目标机无法连接到网络,linux 安装了xunsearch服务,但是PHP连接显示:目标计算机积极拒绝...
求助一下,我在本地虚拟机上安装了xunearch telnet ip 22 可以连接 telnet ip 8383 就显示:无法打开到主机的连接. 用PHP去连接xunsearch,显示: 192.1 ...
- php积极拒绝,linux安装了xunsearch服务,但是PHP连接显示:目标计算机积极拒绝
求助一下,我在本地虚拟机上安装了xunearch telnet ip 22 可以连接 telnet ip 8383 就显示:无法打开到主机的连接. 用PHP去连接xunsearch,显示: 192.1 ...
- xunsearch全文检索初体验
目录 测试添加数据 测试搜索 简单搜索 稍微复杂的搜索 搜索建议 测试添加数据 ./Indexer.php --source=csv --clean demo 清空现有索引数据 ... 初始化数据源 ...
最新文章
- Windows下Git的安装
- Js控制样式的诸多方法
- I AM NOTHING vs I AM SOMETHING
- 特别推荐:开发者的10个最佳代码游乐场
- 基于Givens变换的QR分解
- 【转载】【SQL】Sql Server Management Studio 18 打开闪退问题
- 51单片机外设篇:LED点阵
- 【hdu4609】 3-idiots FFT
- 高清HDMI高清编码器(HDMI网络传输器)使用及前景
- HDU 1698 Just a Hook(线段树区间更新)
- (附源码)基于PHP的酒店住宿管理系统 毕业设计 261455
- 腾讯云服务器和阿里云服务器新客选谁
- 软硬整合:开发一款VR大作背后的技术支撑
- html+css day1 如何用Mac创建html文件
- 搭建kinect for windows开发平台
- jude 5.5.2 UML
- python求解一阶常微分方程
- CRM系统,覆盖企业多应用场景
- AutoCAD入门——常用指令
- 服务器一键系统,一键安装服务器系统