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. Project Euler 54: Poker hands

    在纸牌游戏中,一手包含五张牌并且每一手都有自己的排序,从低到高的顺序如下: 大牌:牌面数字最大 一对:两张牌有同样的数字 两对:两个不同的一对 三条:三张牌有同样的数字 顺子:所有五张牌的数字是连续的 ...

  2. Linux | 性能分析系列学习 (2)

    常分析方法: 1.监控大盘,是否异常报警 2..平均负载情况,(top    /    htop )平均负载体现的是系统的一个整体情况,他应该是cpu.内存.磁盘性能的一个综合,一般是平均负载的值大于 ...

  3. Go 基础学习笔记 (5)| 数据类型说明与使用

    在 Go 编程语言中,数据类型用于声明函数和变量. 数据类型的出现是为了把数据分成所需内存大小不同的数据,编程的时候需要用大数据的时候才需要申请大内存,就可以充分利用内存. Go 语言按类别有以下几种 ...

  4. SpringBoot 整合jdbc和mybatis

    摘要 该文章主要为记录如何在SpringBoot项目中整合JDBC和MyBatis,在整合中我会使用简单的用法和测试用例,毕竟该文章目的是为了整合,而不是教大家如何去使用.希望大家多多包涵. 通用配置 ...

  5. 微擎 manifest.xml

    微擎 manifest.xml <?xml version="1.0" encoding="utf-8"?> <manifest xmlns= ...

  6. 自动安装 linux 系统

    实现自动安装 centos 6 和 centos 7 实现自动安装 Linux 系统需要在虚拟机上安装三个服务:apache .tftp.dhcp 三个服务放在一台虚拟机上即可 一.DHCP 服务器的 ...

  7. 【SpringBoot | Druid】SpringBoot整合Druid

    SpringBoot整合Druid Druid是个十分强大的后端管理工具,具体的功能和用途请问阿里爸爸 1. 在pom.xml中导入包 <!-- alibaba 的druid数据库连接池 --& ...

  8. 使用ndk交叉编译android各平台版本的第三方库

    只要弄明白了ndk-bundle的目录结构,交叉编译的基本原理就可以自行编写脚本去编译了.从仓库拿下代码包后,一般在linux平台下编译当前平台使用的库,只要使用其自动配置脚本configure进行平 ...

  9. Java并发之volatile关键字

    引言 说到多线程,我觉得我们最重要的是要理解一个临界区概念. 举个例子,一个班上1个女孩子(临界区),49个男孩子(线程),男孩子的目标就是这一个女孩子,就是会有竞争关系(线程安全问题).推广到实际场 ...

  10. Linux LVM 配置

    本文出自 “www.kisspuppet.com” 博客,请务必保留此出处http://dreamfire.blog.51cto.com/418026/1084729 许多Linux使用者安装操作系统 ...