Linux 使用 docker 下搭建 xunsearch 搜索引擎服务

  1. 安装 docker 环境(菜鸟教程有说明)

  2. 下载并运行 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

链接

  1. 开始使用,以 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操作,小中型项目确实是不错的选择。

Linux 使用 docker 下搭建xunsearch 搜索引擎服务的更多相关文章

  1. Docker+Gogs搭建个人Git服务

    欢迎 经常使用Github的我,Github它功能强大,操作简单,不用FQ,所以大家会使用Github进行代码托管,但是,Github的私仓收费的,而且对于普通个人用户来说,价格也不便宜.很多人搭建自 ...

  2. 实战maven私有仓库三部曲之三:Docker下搭建maven私有仓库

    本章是<实战maven私有仓库>系列的第三篇,在前两章中,我们先在linux搭建maven私有仓库,然后在开发环境使用此仓库,本章我们在docker下快速搭建maven私有仓库,然后像前面 ...

  3. kali linux 2.0下搭建DVWA渗透测试演练平台

    DVWA (Dam Vulnerable Web Application)DVWA是用PHP+MySQL编写的一套用于常规WEB漏洞教学和检测的WEB脆弱性测试程序.包含了SQL注入.XSS.盲注等常 ...

  4. 在Docker下搭建MySQL双主双重集群(单机展示,与多机原理一致)

    前言 Docker的安装部署&在Docker下MySQL的安装与配置 https://www.cnblogs.com/yumq/p/14253360.html 在Docker进行单机主从复制M ...

  5. 在Linux的Eclipse下搭建Android环境

    http://blog.csdn.net/lyonte/article/details/6407242 一.Java环境安装配置详见<在Linux下搭建Java环境>http://blog ...

  6. docker下搭建owncloud

    在ubuntu下 搭建owncloud 用docker-compose启动,owncloud.yml文件内容 owncloud: image: owncloud: restart: always 开机 ...

  7. [转载] linux、Solaris下xdmcp远程桌面服务

    原文链接 http://youlvconglin.blog.163.com/blog/static/52320420106243857254/ 使用图形界面远程登录linux和Solaris,首先要在 ...

  8. docker下搭建fastfds

    https://blog.csdn.net/weixin_40247263/article/details/81087726 搭建过程参考 作者 https://me.csdn.net/feng_qi ...

  9. docker下搭建fastfds集群版

    搭建过程参考 作者 https://me.csdn.net/feng_qi_1984 的课程视频 声明:集群版是在我之前写的单机版基础之上进行搭建的,我将安装了fastfds单机版的docker打包成 ...

随机推荐

  1. numpy.array 中的运算

    简单运算 现在有有个需求,给定一个数组,让数组中每一个数乘以2,怎么做呢 n = 10 L = [i for i in range(n)] L # [0, 1, 2, 3, 4, 5, 6, 7, 8 ...

  2. [考试反思]1026csp-s模拟测试88:发展

    不用你们说,我自己来:我颓闪存我没脸. 昨天的想法, 今天的回答. 生存, 发展. 总分榜应该稍有回升,但是和上面的差距肯定还是很大. 继续. 为昨天的谬误,承担代价. T2和T3都值得张记性. T2 ...

  3. C 总结 | 复习注意点

    1.1 C预处理 常见错误 预处理错误 #include "" 和 <> 使用错误 "No such....." 更改“” 或者<> 或 ...

  4. 2.4g和5g无线使用频率

  5. php PDO getlastsql写法

    php PDO getlastsql写法有些时候 运行失败需要查看 sql语句 原型有没有语法错误 这个时候就用 下面的函数就是把问号替换成 值 就可以看到原型了<pre>function ...

  6. jquery mobiscroll移动端日期选择控件(无乱码)

    jquery mobiscroll移动端日期选择控件(无乱码) <pre><!DOCTYPE html><html lang="en">< ...

  7. TRANK和VTP

    需求:因为公司规模逐渐扩大,出现相同部门不同办公室的情况,老板提出新的要求:相同部门可以通信,不同部门不能通信. 利用vlan: 缺点:浪费材料,应用技术手段把两条交叉线变成一条. 因此,引进trun ...

  8. PHP队列的实现详细操作步骤

    队列是一种特殊的线性表,它只允许在表的前端,可以称之为front,进行删除操作:而在表的后端,可以称之为rear进行插入操作.队列和堆栈一样,是一种操作受限制的线性表,和堆栈不同之处在于:队列是遵循“ ...

  9. 我的第一个 60 k+ Star Java开源项目

    JavaGuide([Java学习+面试指南] 一份涵盖大部分Java程序员所需要掌握的核心知识):https://github.com/Snailclimb/JavaGuide. 人生总有各种各样的 ...

  10. expect 自动填充密码

    它的脚本以#!/usr/bin/expect开头,执行时用expoct,而不是bash.我的一个给samba自动创建用户并且自动填写默认密码的脚本如下: vim smb_passwd.exp #!/u ...