一、项目的配置文件

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的使用相关推荐

  1. xunsearch 迅搜初探

    2014年1月2日 19:34:12 1 [root@localhost bin]# ./php /usr/local/lamp/xunsearch/sdk/php/util/Quest.php de ...

  2. xunsearch mysql,如何使用xunsearch

    1 安装 1.1 安装依赖环境 apt-get install php build-essential zlib1g-dev  php-mysql -y 1.2 安装xunSearch程序 ./set ...

  3. xunsearch php,GitHub - ziyueit/xunsearch: 迅搜的一个PHP封装类

    xunsearch xunsearch的一个PHP封装类 目录结构说明 www  WEB部署目录 ├─php                                xunsearch-1.4. ...

  4. xunsearch安装使用

    目录 1.下载 2.进入,安装 3.安装成功后,启动后台服务 4.安装PHP-SDK 安装步骤 1.下载 wget http://www.xunsearch.com/download/xunsearc ...

  5. XunSearch的安装和加入服务器开机脚本以及将目录写入系统变量

    一.安装xunserach 1.cd ~ 2.wget http://www.xunsearch.com/download/xunsearch-full-latest.tar.bz2  #下载最新xu ...

  6. mysql全文索引thinkphp_ThinkPHP5 使用迅搜 (XunSearch) 实现全文检索实例指导

    前期准备 入坑了一天,折腾的无语,个人观点:[文档太差,适合学习思路,不建议入坑] 背景 最近在整理全文检索解决方案 注意到 xunsearch 的评价很高,在此记录一番 场景描述 此处作为对 xun ...

  7. linux目标机无法连接到网络,linux 安装了xunsearch服务,但是PHP连接显示:目标计算机积极拒绝...

    求助一下,我在本地虚拟机上安装了xunearch telnet ip 22 可以连接 telnet ip 8383 就显示:无法打开到主机的连接. 用PHP去连接xunsearch,显示: 192.1 ...

  8. php积极拒绝,linux安装了xunsearch服务,但是PHP连接显示:目标计算机积极拒绝

    求助一下,我在本地虚拟机上安装了xunearch telnet ip 22 可以连接 telnet ip 8383 就显示:无法打开到主机的连接. 用PHP去连接xunsearch,显示: 192.1 ...

  9. xunsearch全文检索初体验

    目录 测试添加数据 测试搜索 简单搜索 稍微复杂的搜索 搜索建议 测试添加数据 ./Indexer.php --source=csv --clean demo 清空现有索引数据 ... 初始化数据源 ...

最新文章

  1. Windows下Git的安装
  2. Js控制样式的诸多方法
  3. I AM NOTHING vs I AM SOMETHING
  4. 特别推荐:开发者的10个最佳代码游乐场
  5. 基于Givens变换的QR分解
  6. 【转载】【SQL】Sql Server Management Studio 18 打开闪退问题
  7. 51单片机外设篇:LED点阵
  8. 【hdu4609】 3-idiots FFT
  9. 高清HDMI高清编码器(HDMI网络传输器)使用及前景
  10. HDU 1698 Just a Hook(线段树区间更新)
  11. (附源码)基于PHP的酒店住宿管理系统 毕业设计 261455
  12. 腾讯云服务器和阿里云服务器新客选谁
  13. 软硬整合:开发一款VR大作背后的技术支撑
  14. html+css day1 如何用Mac创建html文件
  15. 搭建kinect for windows开发平台
  16. jude 5.5.2 UML
  17. python求解一阶常微分方程
  18. CRM系统,覆盖企业多应用场景
  19. AutoCAD入门——常用指令
  20. 服务器一键系统,一键安装服务器系统

热门文章

  1. 新装机器如何修改IP地址
  2. 解决scrollViewDidScroll do not work的方法
  3. 微信发力了,一键部署网站后端!
  4. VS Code集成SandDance可视化分析数据
  5. 微软推出 .NET 官方社区论坛
  6. NET问答: 如何用 C# 计算相对时间 ?
  7. Visual Studio 2022这些重大更新,影响每一位.NET开发者!
  8. MySql 数据库基本设计规范
  9. NET问答: 有最干净利落的读写文件方式吗?
  10. .NET架构小技巧(8)——优待异常