文档章节

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

w
 win_ball
发布于 2017/08/30 11:24
字数 670
阅读 143
收藏 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
博文 45
码字总数 13487
作品 0
广州
私信 提问
centos7 使用php时显示/user/bin/env:php 没有那个文件或目录

在使用xunsearch初始化索引的时候使用: /home/xunsearch/sdk/php/util/Indexer.php --source=mysql://demo:demo@localhost/database --sql="select id,content,hotword from tb_roast" 报错......

白与黑
2017/04/05
371
2
xunsearch-1.0.0 正式版 (基于xapian/scws/php的开源中文全文搜索引擎)

经过 2 周如火如荼的测试和修正,很高兴如期发布 xunsearch-1.0.0 正式稳定版,这也是 xunsearch 的第一个正式版本。 Xunsearch 是免费开源的专业全文检索解决方案,旨在帮助一般开发者针对既...

hightman
2011/09/23
1K
3
Xunsearch 1.2.0,开源的PHP全文搜索引擎

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

hightman
2011/12/12
877
1
xunsearch-1.3.0 基于xapian/scws/php的开源中文全文搜索,新增同义词

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

hightman
2012/01/13
918
5
tp5整合xunsearch全文检索

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

谢百川
2018/05/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

React SSR样式及SEO的实践

前一篇主要记录了一下SSR配置以及结合Redux的使用。这里简单说一下React SSR中样式处理和更优雅的SEO SSR样式 在React客户端渲染,添加样式很容易。写一个css样式文件,在对应组件中引用。标...

前端小攻略
4分钟前
0
0
华为手机太猛!余承东吹的牛今天都实现了

华为是世界上少有的在2B和2C领域同时取得成功公司。如今,华为消费者业务的营收,已经在华为总营收中占据“半壁江山”。 12月27日,华为董事长郭平在新年致辞中披露,预计2018年华为预计实现...

linux-tao
14分钟前
1
0
JSP的Model2模式

整体可以看做是 Request > Control > ( Service > DAO > POJO ) > Response POJO是数据实体类,最佳实践是与数据库物理表相对应,方便用工具进行生成,也易于理解。由于直接与物理表相对应...

max佩恩
23分钟前
0
0
rabbitMQ的使用

RabbitMQ介绍 RabbitMQ是实现AMQP(高级消息队列协议)的消息中间件的一种。 AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间...

狼王黄师傅
28分钟前
0
0
面向对象继承

第1章 面向对象 1.1 知识回顾 1.Java中的数据类型 2.引用数据类型String中的方法 3.IO流_读写文件 1.2 面向对象概念回顾 什么叫面向对象编程?有人是这么理解的 也有人说不对,面向对象编程是你...

stars永恒
35分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部