欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Centos7搭建coreseek

程序员文章站 2022-07-01 13:50:20
...

简介

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

相关标签: sphinx coreseek