SphinxSE的安装
SphinxSE是一个可以编译进MySQL 5.x版本的MySQL存储引擎,尽管被称作“存储引擎”,SphinxSE自身其实并不存储任何数 据。它其实是一个允许MySQL服务器与searchd交互并获取搜索结果的嵌入式客户端,所有的索引和搜索都发生在MySQL之外。
它有一个很大的特点呢,就是如果不支持Sphinxapi的语言,也可以使用Sphinx,理论上说,Sphinapi能做的,SphinxSE都能做。
第一步、 安装SphinxSE
SphinxSE的插件,在Sphinx(Coreseek)解压文件中/lamp/coreseek-3.2.14/csft-3.2.14/mysqlse
(1)、删除mysql
因为安装sphinxSE是嵌入到MySQL中,所以我们要重新编译安装一次MySQL。
(2)、复制sphinx中的mysqlse
把sphinx源码文件夹/lamp/sphinx-0.9.9/mysqlse下的所有文件复制到mysql源码文件中
/lamp/mysql-5.1.59/storage/sphinx下,编译myslq的时候把mysqlse一起编译。
创建sphinx文件夹:
mkdir/lamp/mysql-5.1.59/storage/sphinx
复制mysqlse文件夹到mysql的制定目录下
cp/lamp/sphinx-0.9.9/mysqlse/*/lamp/mysql-5.1.59/storage/sphinx
(3)、编译安装
复制完后进入到mysql源码文件进行编译安装,如下:
cd/lamp/mysql-5.1.59/
环境检测:
./configure --prefix=/usr/local/mysql --with-charset=utf8 --enable-thread-safe-client --enable-assembler --with-readline --with-big-tables --with-named-curses-libs=/usr/lib/libncursesw.so.5 --with-plugins=sphinx
环境检测的时候如果出现这个configure: error: unknown plugin: sphinx错误
没执行sh BUILD/autorun.sh的原因。
sh BUILD/autorun.sh
执行后还会报个错误:
BUILD/autorun.sh: line 41: aclocal: command not foundCan't execute aclocal
是因为aclocal的问题,需要安装3个依赖包在我们的镜像中都有,直接yum安装就可以。
imakeautomakelibtool三个包。
如:yum install imake automake libtool
接下来再编译安装
make && make install
(4)、安装完成后,配置mysql
*添加用户组mysql ,将mysql用户默认组设置为mysql用户组
groupadd mysql
useradd -g mysql mysql
*生成MySQL配置文件
cp support-files/my-medium.cnf /etc/my.cnf
*创建数据库授权表
/usr/local/mysql/bin/mysql_install_db --user=mysql
* 更改安装目录和数据目录的所有者、所属组
chown -R root /usr/local/mysql
chown -R mysql /usr/local/mysql/var
chgrp -R mysql /usr/local/mysql
* 启动MySQL服务
/usr/local/mysql/bin/mysqld_safe --user=mysql &
* 登录MySQL客户端控制台设置指定root密码
/usr/local/mysql/bin/mysql -u root
SET PASSWORD FOR 'root'@'localhost'=PASSWORD('Am@ri31n');
* 添加MySQL启动脚本,设置为只有运行级别3自启动
cp /usr/local/mysql/share/mysql/mysql.server /etc/rc.d/init.d/mysqld
chown root.root /etc/rc.d/init.d/mysqld
chmod 755 /etc/rc.d/init.d/mysqld
chkconfig --add mysqld
chkconfig --list mysqld
chkconfig --levels 245 mysqld off
* 进入mysql
/usr/local/mysql/bin/mysql-uroot-p密码;(如进入失败,需要重新启动mysql)
(5)、检测sphinxse
输入这个命令show engines;
显示红格出现的内容就表示sphinxSE安装成功!
第二步:创建SphinxSE引擎表。
CREATE TABLE t1(
id INTEGER UNSIGNED NOT NULL,
weight INTEGER NOT NULL,
query VARCHAR(3072) NOT NULL,
INDEX(query)
) ENGINE=SPHINX CONNECTION="sphinx://localhost:9312/*";
也可以用“*”表示所有索引。
搜索表前三列(字段)的类型必须是 整型(前两个) 和 字符串,这三列分别对应文档ID,匹配权值和搜索查询。这前三个列的映射关系是固定的,你不能忽略这三列中的任何一个,或者移动其位置,或者改变其类型。
第三步:创建sql语句进行连表查询。
$sql="select d.id,d.title,d.content,d.date_added from t1 join documents as d on t1.id = d.id and t1.query='{$keyword}; index=test1'"; 多个索引用逗号分隔。
这个操作主要是通过SphinxSE引擎进行索引的检索,返回的结果交给mysql进行处理。
第四步:处理结果集。
解析出来的结果是一个关联数组,包含字段的值。
如果想获得其他以外的结果,如查询文档数,所用时间等。
用show engine sphinx status;
注意:这句话要在在主查询语句后,立即执行。
第五步:生成摘要,高亮。
从版本0.9.9版本开始,SphinxSE提供了一个UDF函数,允许用户通过MySQL创建摘要。这个功能的作用与API调用BuildExcerprts的功能相似,但可以通过MySQL+SphinxSE来访问。
SphinxSE的摘要,高亮。
在MySQL中创建一个函数:
CREATE FUNCTION sphinx_snippets RETURNS STRING SONAME 'sphinx.so';
函数的名字必须是sphinx_snippets,而不能随便取名。
函数的参数表必须如下:
原型: function sphinx_snippets ( document, index, words, [options] );
Documents 参数:索引的字段名。
Index 参数:索引的名称。
Words 参数:高亮的关键字。
Options 参数(额外选项)必须这样指定:‘值’ AS 选项名。
实例: SELECT sphinx_snippets(content,'test1','{$keyword}','<font color=red>' as before_match,'</font>' as after_match) as content from t1 join documents as d on t1.id = d.id and t1.query='{$keyword};index=test1'";
SphinxSE的安装的更多相关文章
- 【整理】Linux下中文检索引擎coreseek4安装,以及PHP使用sphinx的三种方式(sphinxapi,sphinx的php扩展,SphinxSe作为mysql存储引擎)
一,软件准备 coreseek4.1 (包含coreseek测试版和mmseg最新版本,以及测试数据包[内置中文分词与搜索.单字切分.mysql数据源.python数据源.RT实时索引等测 ...
- coreseek安装
一. Sphinx简介 Sphinx是由俄罗斯人Andrew Aksyonoff开发的一个全文检索引擎.意图为其他应用提供高速.低空间占用.高结果 相关度的全文搜索功能.Sphinx可以非常容易的与 ...
- Sphinx安装配置应用
Sphinx 是由俄罗斯人Andrew Aksyonoff开发的一个全文搜索引擎.意图为其他应用提供高速.地空间占用.高结果相关度的全文搜索功能.Sphinx可以非常容易的与SQL数据库和脚本语言集成 ...
- Sphinx在windows上的安装使用
Sphinx是一个基于SQL的全文检索引擎,可以结合MySQL,PostgreSQL做全文搜索, 它可以提供比数据库本身更专业的搜索功能,使得应用程序更容易实现专业化的全文检索. Sphinx特别为一 ...
- 安装sphinx
安装Sphinx全文检索服务器 Sphinx默认不支持中文索引及检索, 以前用Coreseek的补丁来解决,目前Coreseek 不单独提供补丁文件,而基于sphinx开发了Coreseek 全文检索 ...
- Sphinx学习之sphinx的安装篇
一. Sphinx简介 Sphinx是由俄罗斯人Andrew Aksyonoff开发的一个全文检索引擎.意图为其他应用提供高速.低空间占用.高结果 相关度的全文搜索功能.Sphinx可以非常容易的与 ...
- Sphinx+MySQL5.1x+SphinxSE+mmseg
一.不停止mysql的情况下安装SphinxSE 1.确定mysql版本,下载对应源码包 此处下载5.1.69的mysql源码包 #wget ftp://ftp.ntu.edu.tw/pub/MySQ ...
- sphinx 简介以及安装 以及php拓展开启
一 sphinx 简介 在 使用mysql数据库过程中,如果想实现全文检索的优化,可以使用mysql自带全文索引,但是不支持中文..关于sphinx的安装网上很多教程写的都 不错比如:http:/ ...
- [转]Sphinx+Mysql+中文分词安装-实现中文全文搜索
From : http://blog.csdn.net/lgm252008/article/details/5373436 1.什么是SphinxSphinx 是一个在GPLv2 下发布的一个全文检索 ...
随机推荐
- beta版本工作百分比
1.附上github上,beta阶段的整体工作情况 2.beta版本分工情况: 马凛凛 031302620(组长):主要负责任务分配和规划,编码工作主要是系统的“实时编辑”功能,以及服务器的配置和部署 ...
- python~实现tab补全
文章摘自:http://www.jb51.net/article/58009.htm 第一.如在在vim下实现代码的补全功能. 想要为vim实现自动补全功能,则要下载插件 cd /usr/local/ ...
- iOS边练边学--iOS中的(ARC下)单粒模式(GCD实现)
一.ARC中实现单粒模式 在.m 保留一个全局的static的实例 static id _名称; 重写allocWithZone:方法,在这里创建唯一的实例 提供一个类方法让外界访问唯一的实例 实现c ...
- DNA repair问题
问题:Biologists finally invent techniques of repairing DNA that contains segments causing kinds of inh ...
- cowboy-高性能简洁的erlang版web框架
那么Cowboy是什么呢? Cowboy is a small, fast and modular HTTP server written in Erlang. 其定位非常明确: Cowboy aim ...
- linux系统编程----统计一个目录下的普通文件个数
主要是为了统计linux系统下一个指定目录下面的普通文件个数,运用目录操作的一些函数,配合递归调用来实现该功能. 首先介绍一下函数原型: 打开一个空目录 DIR ...
- easyui之datagrid的使用
http://www.cnblogs.com/ruanmou001/p/3840954.html 一.神马是easyui jQuery EasyUI是一组基于jQuery的UI插件集合,而jQuery ...
- Spring学习3—控制反转(IOC)Spring依赖注入(DI)和控制反转(IOC)
一.思想理解 Spring 能有效地组织J2EE应用各层的对象.不管是控制层的Action对象,还是业务层的Service对象,还是持久层的DAO对象,都可在Spring的 管理下有机地协调.运行.S ...
- Linux下添加新硬盘,分区及挂载
挂载好新硬盘后输入fdisk -l命令看当前磁盘信息 可以看到除了当前的第一块硬盘外还有一块sdb的第二块硬盘,然后用fdisk /dev/sdb 进行分区 进入fdisk命令,输入h可以看到该命令的 ...
- yum被锁Another app is currently holding the yum lock; waiting for it to exit...
可能是系统自动升级正在运行,yum在锁定状态中. 可以通过强制关掉yum进程: #rm -f /var/run/yum.pid 然后就可以使用yum了.