Sphinx Linux 下安装过程


  之前记录过一篇Sphinx在Windows上的安装步骤,这篇当然就是Linux系统的安装步骤啦

1. 下载sphinx包
下载的是当前最新版3.1.1,我将压缩包存在了/usr/local/src/目录下
wget -q http://sphinxsearch.com/files/sphinx-3.1.1-612d99f-linux-amd64.tar.gz 下载时间可能比较长需要耐心等待一会

压缩包名称

2. 解压
tar zxf sphinx-3.1.1-612d99f-linux-amd64.tar.gz解压
mv sphinx-3.1.1 sphinx 重命名一下,方便操作吧
cd sphinx 进入看下目录列表,其中var是需要后面创建的,请继续往下看
解压后的目录

3. 编辑配置文件
配置文件在etc目录下,有两个配置文件示例,其中sphinx.conf是完整版的配置项,并且有英文注释,有兴趣的可以了解一下,我们这里使用下面的sphinx.conf.dist简洁版
复制一份sphinx.conf.distbin目录下,重命名为sphinx.conf
vi sphinx.conf 打开编辑配置文件,这里我直接贴出我自己的配置内容,可以正常跑起来的,关于其他配置项可以看我的另外一篇Sphinx 配置文件sphinx.conf配置项全解析


//数据源配置,也就是数据来源
source item
{
        type                    = mysql
        sql_host                = HOST //数据库
        sql_user                = USER //用户名
        sql_pass                = PASS //数据库密码
        sql_db                  = poster 数据库名称
        sql_port                = 3306  # optional, default is 3306
        sql_query_pre           = SET NAMES utf8 
        sql_query               = \
                SELECT id,name,UNIX_TIMESTAMP(ctime) \
                FROM item
        sql_attr_timestamp  = ctime
}

//索引配置
index item
{
        source                  = item //数据源
        path                    = /usr/local/src/sphinx/var/data 索引存放目录
        min_word_len            = 1 
        ngram_len               = 1
        ngram_chars             = U+3000..U+2FA1F
}


indexer
{
        mem_limit               = 128M
}

//搜索服务
searchd
{
        listen                  = 9312
        listen                  = 9306:mysql41
        log                     = /usr/local/src/sphinx/var/log/searchd.log
        query_log               = /usr/local/src/sphinx/var/log/query.log
        read_timeout            = 5
        max_children            = 30
        pid_file                = /usr/local/src/sphinx/var/log/searchd.pid
        seamless_rotate         = 1
        preopen_indexes         = 1
        unlink_old              = 1
        binlog_path             = /usr/local/src/sphinx/var/data
}

配置文件中需要配置几个目录.分别是log,query_log,pid_file,binlog_path,我们回到sphinx下,新建一个目录var,然后进入再新建一个data目录和一个log目录
mkdir var
cd var
mkdir data
mkdir log
如图:
var目录

image.png

  1. 建立索引
    首先进入到bin目录下,执行下面的指令
    ./indexer -c sphinx.conf item item为刚才在配置文件中建立的索引名称

这里有个大坑,耽误了好久时间,我用的是ubuntu的系统,当我在执行./indexer -c sphinx.conf item时,出现了一个错误:sql_connect: failed to load libmysqlclient (or libmariadb),加载libmysqlclient失败,然后我在/usr/lib/x86_64-linux-gnu/目录下发现了我的libmysqlclient,并不是没有安装的
libmysqlclient
然后我通过google试着找出问题的答案,然而只有两个相关结果,解决方式是建立软链接,并且将libmysqlclient所在的目录加入到环境变量,我照做了之后发现问题并没有顺利解决,最后,我试着下载所有的依赖
apt-get install libmysqlclient18 libmysqlclient-dev libmysqlcppconn7 libmysqlcppconn-dev
等待完成,然后忽略error,执行
apt-get update
等待结束后,再执行建立索引命令,解决了这个问题

5. 开启搜索服务
./searchd


文章作者: 大熊
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 大熊 !
 上一篇
PHP 单色位图取模 PHP 单色位图取模
2018-11-27日更新:  由于没有找到生成.bmp格式图片的好办法,改为使用.wbmp格式,转换和读取都改为.wbmp格式,原来的bmp2hex函数逻辑没有变化,改名为wbmp2hex,并不再使用ImageCr
下一篇 
Sphinx 配置文件sphinx.conf配置项全解析 Sphinx 配置文件sphinx.conf配置项全解析
source:数据源,数据是从什么地方来的。 index:索引,当有数据源之后,从数据源处构建索引。索引实际上就是相当于一个字典检索。有了整本字典内容以后,才会有字典检索。 searchd:提供搜索查询服务。它一般是以deamon的形
  目录