zoukankan      html  css  js  c++  java
  • Linux 使用 docker 下搭建xunsearch 搜索引擎服务

    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 consolehelper;
        
        use Yii;
        
        class UserXunSearch
        {
        
            /**
             * 创建文档
             * createDoc
             */
            public static function createDoc()
            {
                try {
        
                    $userData = []; //数据自己查一下
        
                    /**
                     * @var  $xunSearch hightmanxunsearchConnectionYII2,
                     */
                    $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 hightmanxunsearchConnection
                     */
                    $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操作,小中型项目确实是不错的选择。
  • 相关阅读:
    InvokeRequired和Invoke
    DataGrid 得到DataGridRow 和DataGridColumn
    DataGrid 如何得到DataGridRow 和DataGridCell 对象
    安装Extended WPF Toolkit
    WPF DataGrid绑定一个组合列
    允许Root登录Docker ubuntu(MAC主机,使用portainer管理)
    photoshop人物美白教程:暗沉肤色提亮美白
    django中聚合aggregate和annotate GROUP BY的使用方法
    Django Model 基础数据库操作应用
    如何在mac上安装gitlab
  • 原文地址:https://www.cnblogs.com/stringfade/p/12012497.html
Copyright © 2011-2022 走看看