Centos7搭建coreseek
简介
1、Sphinx(coreseek) 是啥
一般而言,Sphinx是一个独立的全文搜索引擎;而Coreseek是一个支持中文的全文搜索引擎,意图为其他应用提供高速、低空间占用、高结果相关度的中文全文搜索能力。Sphinx/Coreseek可以非常容易的与SQL数据库和脚本语言集成。
2、从哪里获取
Sphinx原始版本可以从Sphinx官方网站 http://www.sphinxsearch.com/,Coreseek可以从Coreseek官方网站 http://www.coreseek.cn/下载.
3、主要特性
目前,Sphinx/Coreseek的发布包包括如下软件:
indexer: 用于创建全文索引;
search: 一个简单的命令行(CLI) 的测试程序,用于测试全文索引;
searchd: 一个守护进程,其他软件可以通过这个守护进程进行全文检索;
sphinxapi: 一系列searchd 的客户端API 库,用于流行的Web脚本开发语言(PHP, Python, Perl, Ruby, Java).
spelldump: 一个简单的命令行工具,用于从 ispell 或 MySpell (OpenOffice内置绑定) 格式的字典中提取词条。当使用 wordforms 时可用这些词条对索引进行定制.
indextool: 工具程序,用来转储关于索引的多项调试信息。 此工具是从版本Coreseek 3.1(Sphinx 0.9.9-rc2)开始加入的。
mmseg: 工具程序和库,Coreseek用于提供中文分词和词典处理。
安装mysql
1、yum安装编译环境和mysql开发包
$ yum install gcc gcc-c++ libtool mysql-devel libxml2-devel expat-devel
2、安装配置mysql数据库
1)安装mysql
CentOS7带有MariaDB而不是MySQ,L,所以需要我们先下载它的rpm包
$ rm /etc/my.cnf #删除旧配置文件
$ tar -zxvf mysql-5.6.34-linux-glibc2.5-x86_64.tar #将下载的压缩包放到 /usr/local/ 目录下
$ mv mysql-5.6.34-linux-glibc2.5-x86_64.tar mysql
$ cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf #参考如下配置my.cnf文件
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
socket=/var/lib/mysql/mysql.sock
[mysqld]
skip-name-resolve
#设置3306端口
port = 3306
socket=/var/lib/mysql/mysql.sock
# 设置mysql的安装目录
basedir=/usr/local/mysql
# 设置mysql数据库的数据的存放目录
datadir=/usr/local/mysql/data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
lower_case_table_name=1
max_allowed_packet=16M
$ cd /usr/local/mysql
$ ./scripts/mysql_install_db --user=root --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ #安装mysql数据库
安装可能出现缺少包情况,视情况安装对应的包:
yum -y install autoconf
yum -y install libaio*
yum -y install numactl.x86_64
2)配置mysql
$ chmod 644 /etc/my.cnf
$ cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld #复制启动脚本到资源目录
$ chmod +x /etc/rc.d/init.d/mysqld #增加mysqld服务控制脚本执行权限
$ chkconfig --add mysqld #将mysqld服务加入到系统服务
$ chown -R mysql:mysql /usr/local/mysql
$ chmod -R 755 /usr/local/mysql
$ service mysqld start
3)添加环境变量
$ vi ~/.bash_profile #将mysql的bin目录加入PATH环境变量,编辑 ~/.bash_profile文件
在文件最后添加如下信息:
export PATH=$PATH:/usr/local/mysql/bin
$ source ~/.bash_profile #执行下面的命令是修改的内容立即生效
4)设置root用户登录密码
设置root账户密码为root
mysql>use mysql;
mysql>update user set password=password('root') where user='root' and host='localhost';
mysql>flush privileges;
设置远程主机登录
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
安装Coreseek
1、将你下载的tar包解压到/usr/local目录下,并进入coreseek 子目录:
$ cd /usr/local
$ tar -zxvf coreseek-3.2.14.tar.gz
$ cd coreseek-3.2.14
2、安装mmseg
$ cd mmseg-3.2.14/
$ ./bootstrap
$ ./configure --prefix=/usr/local/mmseg #指定安装目录
$ make
$ make install
3、安装coreseek
$ cd ..
$ cd csft-3.2.13
$ sh buildconf.sh #检查系统开发环境,输出的warning信息可以忽略,如果出现error则需要解决
$ ./configure --prefix=/usr/local/coreseek --without-unixodbc --with-mmseg --with-mmseg-includes=/usr/local/mmseg/include/mmseg/ --with-mmseg-libs=/usr/local/mmseg/lib/ --with-mysql=/usr/local/mysql
$ make
$ make install
4、配置测试,测试是否可以正确运行
$ /usr/local/coreseek/bin/indexer -c /usr/local/coreseek/etc/sphinx-min.conf.dist
配置过程中可能碰到以下错误:
error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory
解决方法:查看mysql安装目录下/安装目录/lib/libmysqlclient.so.18是否存在,如果存在,那就做一个软链接到/usr/lib64/目录下
$ ln -s /usr/local/coreseek/lib/libmysqlclient.so.18 /usr/lib64
5、修改配置文件
$ vi /usr/local/coreseek/etc/csft_mysql.conf
sql_user = root
sql_pass =
path = /usr/local/coreseek/var/data/mysql
charset_dictpath = /usr/local/mmseg/etc/
pid_file = /usr/local/coreseek/var/log/searchd_mysql.pid
log = /usr/local/coreseek/var/log/searchd_mysql.log
query_log = /usr/local/coreseek/var/log/query_mysql.log
6、建立索引
$ /usr/local/coreseek/bin/indexer -c /usr/local/coreseek/etc/csft_mysql.conf --all
执行服务
$ /usr/local/coreseek/bin/searchd -c /usr/local/coreseek/etc/csft_mysql.conf
停止搜索服务
$ /usr/local/coreseek/bin/searchd -c /usr/local/coreseek/etc/csft_mysql.conf --stop
搜索测试
$ /usr/local/coreseek/bin/search -c /usr/local/coreseek/etc/csft_mysql.conf -a abc
如果在coreseek运行时创建索引,加上--rotate参数,这样索引创建完成就直接生效了
$ /usr/local/coreseek/bin/indexer -c /usr/local/coreseek/etc/csft_mysql.conf --all --rotate
参考链接:
1、sphinx的Coreseek安装
https://blog.csdn.net/fafa211/article/details/8028921
2、Coreseek安装测试配置指南转
http://www.makaidong.com/object c/19305.shtml