文档章节

xunsearch的索引导入及php应用例子

w
 win_ball
发布于 2017/08/30 11:24
字数 670
阅读 93
收藏 0

1.启动xunsearch

/usr/local/xunsearch/bin/xs-ctl.sh start

 

2.创建项目配置

官方的配置教程:http://www.xunsearch.com/doc/php/guide/ini.first

官方的配置辅助工具:http://www.xunsearch.com/tools/iniconfig

project.name = blog    
server.index = 8383    
server.search = 8384    
[aid]    
type = id    
[title]    
type = title    
[content]    
type = body

配置的几点说明:

(1).配置内容存放在 /xunsearch/sdk/php/app/blog.ini中

(2).配置的项目名为blog

(3).aid字段是主键、title字段是我的文章标题、content字段是我的文章内容,字段数可多可少,但必须要有个主键字段

 

3.建立索引,这部分是用xunsearch自带的工具为原有的数据创建索引,如果原来没有数据,创建索引也没多少意义

执行创建索引命令格式:

util/Indexer.php --rebuild --source=mysql://你的数据库用户名:你的数据库密码@你的数据库IP/你的数据库名 --sql="你要执行的SQL语句" --filter=debug --project=你的项目名 >日志文件名

 

切换到sdk目录

cd /usr/local/xunsearch/sdk/php

我们来为我们的例子创建索引

 

util/Indexer.php --rebuild --source=mysql://root:123456@127.0.0.1/blog --sql="SELECT aid,title,content FROM article" --filter=debug --project=blog >log.txt

说明:我是在本机装的,用的是root用户,密码123456,blog数据库,article数据表,日志写到当前目录/usr/local/xunsearch/sdk/php下的log.txt文件内

 

4.测试搜索

数据库blog中的article表已经有3条数据

 

HTML的搜索代码:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/html">
<head lang="en">
    <meta charset="utf-8">
    <title>搜索</title>
</head>
<body>
<h3>全文搜索在php程序中应用</h3>
<form action="search.php" method="post">
    输入搜索的关键词:
    <input type="text" name="keyword" />
    <input type="submit" value="搜索" />
</form>
<hr />

</body>
</html>

 

search.php代码

<?php
/**
 * Created by me
 * User: 09
 * Date: 2017/8/29
 * Time: 16:23
 */

#引入接口文件
require '/usr/local/xunsearch/sdk/php/lib/XS.php';  // 引入 xunsearch sdk
if($_POST['keyword'] != ''){
    $keyword = trim($_POST['keyword']);             // 接收关键词
    $xs = new XS('blog');                           // blog为项目名称,配置文件是:$sdk/app/blog.ini
    $search = $xs->search;                          // 获取搜索对象
    $search->setQuery($keyword);                    // 加入搜索关键词
    $docs = $search->search();                      // 搜索
    var_dump($docs);

    echo "<table border='1' cellspacing='0'><tr><th>标题</th></tr>";
    foreach ($docs as $doc) {
        $subject = $search->highlight($doc->title); //  高亮处理标题
        echo "<tr><td>".$subject."</td></tr>";
    }
    echo "</table>";

}

 

 

遇到的问题:

1.第一步启动xunsearch一定要做

2.cd 到/usr/local/xunsearch/sdk/php  就可以了,如果长度到/usr/local/xunsearch/sdk/php/util 目录,直接使用Indexer.php --rebuild --source=mysql....... 会出现 Indexer.php: command not found

3.注意建立索引的命令格式和写法,我这里使用localhost会出现 PHP Warning:  mysqli::__construct(): (HY000/2002): No such file or directory in /data/tool/sdk/php/util/XSDataSource.class.php on line 627    ,所以改成127.0.0.1或你的服务器IP

© 著作权归作者所有

共有 人打赏支持
w
粉丝 0
博文 44
码字总数 13248
作品 0
广州
tp5整合xunsearch全文检索

应用场景:大量数据的模糊搜索,数据统计分析等场景,xunsearch的索引中只维护id和检索字段,例如id和content,可以保证索引的简单易维护性和命中速度,同时可以根据id字段配合mysql精确查找...

谢百川
05/20
0
0
xunsearch数字搜索的特殊处理

有个场景,需要使用xunsearch支持手机号的搜索,特别要用户一边输入一遍搜索。于是涉及到通过一串数字的前缀,来搜索的问题。 xunsearch的默认分词器达不到效果,最相近的XSTokenizerXlen,默...

深蓝苹果
2015/11/18
0
0
xapian-xunsearch的后端

Xapian 是一款开源的C++信息检索系统,内部系统试用了xunsearch,因此稍微了解了一下“虾片”的机制 先看一下执行过程: 检索相关: Xapian::Database 用于读取索引。 Xapian::Enquire 提供检...

深蓝苹果
2013/10/25
0
0
全文检索 Api 应用框架--alconSeek

尔康搜索(alconSeek)是一个让你极其方便地开发全文检索 Api 的应用骨架。 一. 依赖: 1). LNMP环境 搭建可参考:https://github.com/farwish/delicateShell/tree/master/lnmp 2). Composer工具...

farwish
2016/11/30
858
1
Xunsearch 1.2.0,开源的PHP全文搜索引擎

迅搜(xunsearch)是采用 C/C++ 基于 xapian 和 scws 开发的全文搜索引擎解决方案,提供 PHP 语言的开发接口。支持海量数据高速检索,功能强大,简单易用,是 PHP 开发的 WEB 应用的全文检索首...

hightman
2011/12/12
869
1

没有更多内容

加载失败,请刷新页面

加载更多

原型模式

1、原型模式-定义 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象 克隆(浅度克隆->拷贝值类型或者引用,深度克隆->创建新的对象,开辟新的内存) 例如客户端知道抽象Pro...

阿元
今天
47
0
awk命令扩展使用操作

awk 中使用外部shell变量 示例1 [root@centos01 t1022]# A=888[root@centos01 t1022]# echo "" | awk -v GET_A=$A '{print GET_A}'888[root@centos01 t1022]# echo "aaaaaaaaaaaaa" | aw......

野雪球
今天
42
0
深入解析MySQL视图VIEW

Q:什么是视图?视图是干什么用的? A:视图(view)是一种虚拟存在的表,是一个逻辑表,本身并不包含数据。作为一个select语句保存在数据字典中的。   通过视图,可以展现基表的部分数据;...

IT--小哥
今天
47
0
虚拟机学习之二:垃圾收集器和内存分配策略

1.对象是否可回收 1.1引用计数算法 引用计数算法:给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加1;当引用失效时,计数器值就减1;任何时候计数器值为0的对象就是不可能...

贾峰uk
今天
42
0
smart-doc功能使用介绍

smart-doc从8月份底开始开源发布到目前为止已经迭代了几个版本。在这里非常感谢那些敢于用smart-doc去做尝试并积极提出建议的社区用户。因此决定在本博客中重要说明下smart-doc的功能,包括使...

上官胡闹
昨天
47
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部