码迷,mamicode.com
首页 > 系统相关 > 详细

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

时间:2019-12-09 19:11:13      阅读:145      评论:0      收藏:0      [点我收藏+]

标签:arch   两种方法   icon   自启   restart   word   var   文件   return   

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

    链接

  3. 开始使用,以 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 搜索引擎服务

标签:arch   两种方法   icon   自启   restart   word   var   文件   return   

原文地址:https://www.cnblogs.com/stringfade/p/12012497.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!