Fork me on GitHub

linux下安装sphinx-for-chinese 支持中文全文索引

一、需要安装mysql和Gcc和g++

yum install gcc
yum install g++

  在linux下,C++的编译器不是g++这个名称,而是gcc-c++,由此看来的确是我想当然了。然后直接运行

yum install gcc-c++ libstdc++-devel

二、下载 sphinx-for-chinese.tar.gz(点击下载) 放在/usr/local 目录下并且解压

三、进入安装目录执行,将程序安装到 /usr/local/sphinxforchinese目录下

  将 configure的第7804行 “$as_echo "#define USE_LIBICONV 0" >>confdefs.h”修改为“$as_echo "define USE_LIBICONV 0" >>confdefs.h”

  要不然会安装不成功然后执行下面命令

./configure  --prefix=/usr/local/sphinxforchinese  --with-mysql
make
make install

四、生成字典(先进入到 /usr/local/sphinxforchinese)

  1.将文件夹中的 xdict_1.1.txt (点击下载)文件丢到 /usr/local/sphinxforchinese目录下

 

   2.执行如下命令   

cd /usr/local/sphinxforchinese
/usr/local/sphinxforchinese/bin/mkdict  xdict_1.1.txt  etc/xdict

 

 

 五、新建索引

  1、将 sphinx.conf 丢到 /usr/local/sphinxforchinese/etc 中并且配置数据库连接信息

  2、创建索引

/usr/local/sphinxforchinese/bin/indexer -c /usr/local/sphinxforchinese/etc/sphinx.conf  --all --rotate

 

 

 

  sphinx.conf 文件信息如下

#
# Minimal Sphinx configuration sample (clean, simple, functional)
#
  
source src1
{
    # 你的数据库配置信息
    type            = mysql
  
    sql_host        = 127.0.0.1
    sql_user        = root
    sql_pass        = 123456
    sql_db          = shop
    sql_port        = 3306  # optional, default is 3306
  
    # 数据源
    sql_query       = \
        SELECT goods_id, goods_name,goods_desc, goods_lessen,goods_type,goods_brand,goods_price,goods_points,is_points,goods_heat,goods_status,goods_addtime FROM goods
    # 具体字段优化 
    # 正整数类型
    sql_attr_uint       = is_points
    # 时间戳类型
    sql_attr_timestamp  = goods_addtime
}

index test1
{
    source          = src1
    # 确保目录存在,不存在创建
    path            = /usr/local/sphinxforchinese/var/data/test1
    # 配置中文字典
    chinese_dictionary = /usr/local/sphinxforchinese/etc/xdict
}

indexer
{
    mem_limit       = 256M
}
  
searchd
{
    listen          = 9312
    listen          = 9306:mysql41
    # 确保目录存在,不存在创建
    log             = /usr/local/sphinxforchinese/var/log/searchd.log
    # 确保目录存在,不存在创建
    query_log       = /usr/local/sphinxforchinese/var/log/query.log
    read_timeout    = 5
    max_children    = 30
    # 确保目录存在,不存在创建
    pid_file        = /usr/local/sphinxforchinese/var/log/searchd.pid
    seamless_rotate = 1
    preopen_indexes = 1
    unlink_old      = 1
    workers         = threads # for RT to work
    # 确保目录存在,不存在创建
    binlog_path     = /usr/local/sphinxforchinese/var/data
}

六、启动sphinx

/usr/local/sphinxforchinese/bin/searchd  -c  /usr/local/sphinxforchinese/etc/sphinx.conf

 

 

 七、查看是否成功

  检查 /usr/local/sphinxforchinese/var/data 中是否有 test1开头的几个文件

 

八、sphinx常用命令

  1、启动

/usr/local/sphinxforchinese/bin/searchd

  2、停止

/usr/local/sphinxforchinese/bin/searchd –stop

  3、创建索引

/usr/local/sphinxforchinese/bin/indexer -c /usr/local/sphinxforchinese/etc/sphinx.conf  --all --rotate

 

posted @ 2021-09-28 16:22  三冬两夏  阅读(202)  评论(0编辑  收藏  举报