xunsearch的索引导入及php应用例子
博客专区 > win_ball 的博客 > 博客详情
xunsearch的索引导入及php应用例子
win_ball 发表于8个月前
xunsearch的索引导入及php应用例子
  • 发表于 8个月前
  • 阅读 55
  • 收藏 0
  • 点赞 0
  • 评论 0

【腾讯云】买域名送云解析+SSL证书+建站!>>>   

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

标签: xunsearch 搜索
  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 0
博文 36
码字总数 12794
×
win_ball
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: