Coreseek + Sphinx + Mysql + PHP构建中文检索引擎
Sphinx是开源的搜索引擎,它支持英文的全文检索。所以如果单独搭建Sphinx,你就已经可以使用全文索引了。但是往往我们要求的是中文索引,怎么做呢?国人提供了一个可供企业使用的,基于Sphinx的中文全文检索引擎。也就是说Coreseek实际上的内核还是Sphinx。那么他们的版本对应呢?
Coreseek发布了3.2.14版本和4.1版本,其中的3.2.14版本是2010年发布的,它是基于Sphinx0.9.9搜索引擎的。而4.1版本是2011年发布的,它是基于Sphinx2.0.2的。Sphinx从0.9.9到2.0.2还是有改变了很多的,有很多功能,比如sql_attr_string等是在0.9.9上面不能使用的。所以在安装之前请判断清楚你需要安装的是哪个版本,在google问题的时候也要弄清楚这个问题的问题和答案是针对哪个版本的。我个人强烈建议使用4.1版本。
网上有一篇文章说的是Sphinx和Coreseek是怎么安装的,其中它的coreseek安装这部分使用coreseek-4.1来替换就可以使用了。
详细步骤看上面篇文章就理解了,这里说一下我在安装过程中遇到的几个问题:
安装mmseg的时候,./configure出现错误:config.status: error: cannot find input file: src/Makefile.in这个时候需要先运行下automake
结果我运行的时候竟然提示automake的版本不对
所以这个时候,你可能需要去官网下个对应的版本(有可能是需要老版本)再来运行
在安装csrf的时候,文档提示需要指定mysql,但是我的mysql是yum安装的,找不到安装路径--with-mmseg=/usr/local/mmseg --with-mmseg-includes=/usr/local/mmseg/include/mmseg/ --with-mmseg-libs=/usr/local/mmseg/lib/
yum安装的mysql的include和libs文件夹一般是安装在/usr/include/mysql和/usr/lib64/mysql下面
所以这里的--with-mysql可以使用--with-mysql-includes和--with-mysql-libs来进行替换。
--prefix=/usr/local/coreseek --with-mysql-includes=/usr/includes/mysql --with-mysql-libs=/usr/lib64/mysql/ --with-mmseg=/usr/local/mmseg --with-mmseg-includes=/usr/local/mmseg/include/mmseg/ --with-mmseg-libs=/usr/local/mmseg/lib/
如何安装php的sphinx扩展
可以在这里(http://pecl.php.net/package/sphinx)找到sphinx的php扩展源码
注意,使用phpize,configure的时候可能会要求要安装libsphinxclient,它在coreseek-4.1-beta/csft-4.1/api/libsphinxclient/里面能找到,编译安装它以后就可以configure,make,生成动态so文件了。
如何配置sphinx.conf配置文件最复杂的部分就是sphinx.conf配置文件的配置了,里面的注释代码非常多,我建议使用的时候把注释代码去掉,我贴出自己使用的最简单的一个成功的配置文件:
sql_query = select id, id AS id_new,name, name AS name_query,descr, descr AS descr_query,city FROM account
log = /home/yejianfeng/instance/coreseek/var/log/searchd.log
pid_file = /home/yejianfeng/instance/coreseek/var/log/searchd.pid
[yejianfeng@AY130416142121702aac etc]$ ps aux|grep searchd 501 30897 0.0 0.0 60824 1396 pts/2 S 17:19 0:00 /home/yejianfeng/instance/coreseek/bin/searchd -c /home/yejianfeng/instance/coreseek/etc/sphinx.conf 501 30999 0.0 0.0 103232 856 pts/2 S+ 18:10 0:00 grep searchd
sphinx(五)php执行sphinx更新索引rotate命令 选择在更新数据的时候更新索引,这样做是为了保证数据检索的实时性,但是如果您的数据需要比较频繁的更新且数据量比较大,并且对数据检索没有实时性的要求,那么可以使用linux的定时任务,在使用人数较少的时候来更新索引,
首先你必须已经安装过了sphinx 如何安装sphinx请看:http://blog.csdn.net/fenglailea/article/details/38111661#t0 进入sphinx 安装目录api/libsphinxclient libsphinxclient 安装(php模块需要) cd sphinx-2.2.3-beta/api/libsp
相关文章
- Java+MyEclipse+Tomcat (三)配置MySQL及查询数据显示在JSP网页中
- Mysql授权允许远程访问解决Navicat for MySQL连接mysql提示客户端不支持服务器请求的身份验证协议;考虑升级MySQL客户端
- mysql索引知识简单记录
- 摄像头拍照,PHP输入流php://input的使用分析
- php分享二十一:mysql语句
- [获取行数]php读取大文件提供性能的方法,PHP的stream_get_line函数读取大文件获取文件的行数的方...
- 我们可以使用MySQL创建一个具有数字名称的数据库吗?
- PHP连接MySQL数据库的三种方式(mysql、mysqli、pdo)--续
- centos下安装ngnix+php+mysql服务
- php同步mysql两个数据库中表的数据
- Shell centos7.4整合安装Nginx+Mysql+php脚本
- MYsql 数据库密码忘记(Window)-2(mysql 5.7)
- PHP 连接 MySQL
- 高考后能学习——阿里云-winserver服务器购买以及使用(包含【.Net】、【PHP】、【MySQL】、【Navicat】、【Java】、安装)
- PHP面试题:mysql_fetch_row() 和mysql_fetch_array之间有什么区别?
- PHP面试题:php读取文件内容的几种方法和函数?
- MySQL Full Join的实现
- mysql的if用法解决同一张数据表里面两个字段是否相等统计数据量。
- httpd/php/mysql的安装-1
- Ubuntu 安装 MySQL 8.0+
- Mysql 5.7 修改密码的三种方式 ——筑梦之路
- MySQL 一文带你详解 mysql binlog
- 成为MySQL大神的基础~