php之xunsearch安装与使用

程序
0 236
caixiaoxu
2018-09-17
环境:CentOS Linux 7.5.1804
PHP:7.0

一、下载安装xunsearch

没有依赖的话就按着下依赖

yum install zlib*

yum install gcc-c++

yum install bzip2

然后下载xunsearch源码包

文件目录cd /usr/local/src

wget http://www.xunsearch.com/download/xunsearch-full-latest.tar.bz2

tar -jxvf xunsearch-full-latest.tar.bz2

cd xunsearch-full-1.4.11/

安装

sh setup.sh

启动

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

二、项目引用

我这里用的是composer引入扩展,composer.json加入

"hightman/xunsearch": "*@beta"

然后update一下composer,安装完之后就可以开始写代码了。

修改/vendor/hightman/xunsearch/app/demo.ini,里面是这样的

project.name = demo
project.default_charset = utf-8
server.index = 8383
server.search = 8384

[pid]
type = id

[subject]
type = title

[message]
type = body

[chrono]
type = numeric

project.name必须和文件的名字一样,一个项目一个,不要重复,里面的内容就得看手册了

手册:http://www.xunsearch.com/doc/php/guide/ini.guide

控制器引入扩展

use XS;
use XSDocument;
use XSException;

控制器方法


    public function xun_search($id = 1)
    {
        try {
            $movie = new XS('movie');
            $index = $movie->index;
            $query = Db::name('movie')
                ->where('id','>=',$id)
                ->limit(100)
                ->order('id')
                ->select();
            if (!$query) {
                echo '没有数据';
                die();
            }
            foreach ($query as $value){
                $data = array(
                    'pid' => $value['id'],
                    'title' => $value['retitle'],
                    'alias' => $value['alias'],
                    'place' => $value['place'],
                    'director' => $value['director'],
                    'scriptwriter' => $value['scriptwriter'],
                    'starring' => $value['starring']
                );
                $doc = new XSDocument();
                $doc->setFields($data);
                $index->add($doc);
            }
            $index->flushIndex();
        } catch (XSException $e) {
            echo $e->getMessage();
        }
        echo '建立完毕';
    }

    public function xun_search_get()
    {
        $xs = new XS('movie');
        $search = $xs->search;
        //$query = input('search');
        $query = '正义'; // 这里的搜索语句很简单,就一个短语
        $search->setQuery($query); // 设置搜索语句
        $search->setLimit(30,0); // 设置返回结果最多为 30 条,并跳过前 0 条

        $docs = $search->search(); // 执行搜索,将搜索结果文档保存在 $docs 数组中
        dump($docs);
    }

详细操作看官方手册:http://www.xunsearch.com/doc/php/guide/index.overview


回帖