安装sphinx

更新依赖包以及安装编译环境
yum -y install m4 autoconf automake libtool

yum -y install gcc gcc-c++ wget

yum -y install mysql-devel


下载coreseek

wget http://www.coreseek.cn/uploads/csft/3.2/coreseek-3.2.14.tar.gz

##mmseg3是一个中文分词插件

tar xzvf coreseek-3.2.14.tar.gz
cd coreseek-3.2.14
cd mmseg-3.2.14/
./bootstrap
./configure --prefix=/usr/local/mmseg3
make
make install

cd ../csft-3.2.14/
sh buildconf.sh
./configure --prefix=/usr/local/coreseek --without-python --without-unixodbc --with-mmseg --with-mmseg-includes=/usr/local/mmseg3/include/mmseg/ --with-mmseg-libs=/usr/local/mmseg3/lib/ --with-mysql --host=arm

vi src/sphinxexpr.cpp

执行完上一步如果报错  就执行下面这一步   如果不报错 就跳过这一步   直接make
然后将所有的T val = ExprEval ( this->m_pArg, tMatch ).....修改为

T val = this->ExprEval ( this->m_pArg, tMatch )

make
make install
cd /usr/local/coreseek/etc


进入配置目录通过命令ls可以看到3个文件
example.sql  sphinx.conf.dist  sphinx-min.conf.dist
其中example.sql是示例sql脚本我们将其导入到数据库中的test数据库中作为测试数据(会创建两张表 documents和tags)
=============================================================================
vi sphinx.conf
输入以下内容
source src1
{
    type                      = mysql  //数据库类型
    sql_host                = localhost  //主机
    sql_user                = root        //用户名
    sql_pass                =12345678   //密码
    sql_db                = test    //检索数据库名
    sql_port                = 3306    # optional, default is 3306
    sql_sock                              = /tmp/mysql.sock
    sql_query_pre = SET NAMES utf8
    sql_query                =
        SELECT id, group_id, UNIX_TIMESTAMP(date_added) AS date_added, title, content
        FROM documents
    sql_attr_uint            = group_id
    sql_attr_timestamp        = date_added
    sql_query_info            = SELECT * FROM documents WHERE id=$id
}
index test1
{
    source                    = src1
    path                    = /usr/local/coreseek/var/data/test1
    docinfo                    = extern
    charset_type            = zh_cn.utf-8
    mlock            = 0
    morphology        = none
    min_word_len        = 1
    html_strip        = 0
    charset_dictpath        = /usr/local/mmseg3/etc/
    ngram_len                    = 0
}
indexer
{
    mem_limit                = 32M
}


searchd
{
    port                    = 9312
    log                        = /usr/local/coreseek/var/log/searchd.log
    query_log                = /usr/local/coreseek/var/log/query.log
    read_timeout            = 5
    max_children            = 30
    pid_file                = /usr/local/coreseek/var/log/searchd.pid
    max_matches                = 1000
    seamless_rotate            = 1
    preopen_indexes            = 0
    unlink_old                = 1
}

说明:
代码段source src1{***} 代表数据源里面主要包含了数据库的配置信息,src1表示数据源名字,可以随便写。
代码段index test1{***} 代表为哪个数据源创建索引,与source *** 是成对出现的,其中的source参数的值必须是某一个数据源的名字。
其他参数可以查看手册,这里不再赘述。
生成索引
/usr/local/coreseek/bin/indexer -c /usr/local/coreseek/etc/sphinx.conf --all
其中参数--all表示生成所有索引
当然也可以是索引的名字例如:/usr/local/coreseek/bin/indexer -c /usr/local/coreseek/etc/sphinx.conf test1
执行后可以在/usr/local/coreseek/var/data目录中看到多出一些文件,是以索引名为文件名的不同的扩展名的文件
在不启动sphinx的情况下即可测试命令:
  /usr/local/coreseek/bin/search -c /usr/local/coreseek/etc/sphinx.conf number








原文地址:https://www.cnblogs.com/dcrq/p/5655342.html