Linux 使用 docker 下搭建xunsearch 搜索引擎服务
Linux
使用 docker
下搭建 xunsearch 搜索引擎服务
- 安装
docker
环境(菜鸟教程有说明) - 下载并运行
xunsearch
的服务端:docker安装xunsearch说明docker
安装完毕后,开始安装xunsearch
镜像
docker pull hightman/xunsearch
- 启动镜像
//镜像非开机自启 docker run --name xunsearch -d -p 8383:8383 -p 8384:8384 -v /var/xunsearch/data:/usr/local/xunsearch/data hightman/xunsearch:latest
//镜像开机自启 此外要配置 docker 服务开机自启动 添加容器在docker运行时自动启有两种方法 1.在使用docker run时,添加下面参数 --restart=always 2.在运行docker的时候添加 docker update --restart=always 容器id
-
开始使用,以
YII2
为例:-
composer
安装:composer require hightman/xunsearch
安装说明 -
生成配置文件,可根据文档自己手写一份,配置文件简单清晰。我的配置:
user_id name 1 张三 2 李四 3 王五 ... ... project.name = user project.default_charset = utf-8 server.index = 8383 server.search = 8384 [user_id] type = id [name] index = self tokenizer = default
这里只使用了用户id和名称
-
创建索引
<?php namespace console\helper; use Yii; class UserXunSearch { /** * 创建文档 * createDoc */ public static function createDoc() { try { $userData = []; //数据自己查一下 /** * @var $xunSearch \hightman\xunsearch\ConnectionYII2, */ $xunSearch = Yii::$app->xunsearch; $db = $xunSearch->getDatabase('user'); $db->charset = 'UTF-8'; $db->createDoc(); foreach ($userData as $user){ //添加文档 http://www.xunsearch.com/doc/php/guide/index.add $db->add([ 'user_id' => $user['user_id'], 'name' => $user['name'], ]); } return true; }catch (\Exception $e){ Yii::error($e->getMessage()); return false; } } /** * 搜索内容 * search * @param $keyword * @return bool|\XSDocument[] */ public static function search($keyword) { try { /** * @var $xunSearch \hightman\xunsearch\Connection */ $xunSearch = Yii::$app->xunsearch; $db = $xunSearch->getDatabase('user'); return $db->xs->getSearch() ->setQuery('name:'.$keyword) // 构建搜索语句 http://www.xunsearch.com/doc/php/guide/search.query ->search(); }catch (\Exception $e){ Yii::error($e->getMessage()); return false; } } }
- 插件很友善了提供了AR操作,小中型项目确实是不错的选择。
-