资源预览内容
第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
亲,该文档总共5页全部预览完了,如果喜欢就下载吧!
资源描述
SphinxSE的安装SphinxSE 的使用SphinxSE是一个可以编译进MySQL 5.x版本的MySQL存储引擎,尽管被称作“存储引擎”,SphinxSE自身其实并不存储任何数据。它其实是一个允许MySQL服务器与searchd交互并获取搜索结果的嵌入式客户端,所有的索引和搜索都发生在MySQL之外。它有一个很大的特点呢,就是如果不支持Sphinxapi的语言,也可以使用Sphinx,理论上说,Sphinapi能做的,SphinxSE都能做。第一步、 安装SphinxSESphinxSE的插件,在Sphinx(Coreseek)解压文件中/sphinx/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 foundCant execute aclocal是因为aclocal的问题,需要安装3个依赖包在我们的镜像中都有,直接yum安装就可以。imakeautomakelibtool三个包。如:yum install imake automake libtool接下来再编译安装make & make install(4)、安装完成后,配置mysql*添加用户组mysql ,将mysql用户默认组设置为mysql用户组groupadd mysqluseradd -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/mysqlchown -R mysql /usr/local/mysql/varchgrp -R mysql /usr/local/mysql* 启动MySQL服务/usr/local/mysql/bin/mysqld_safe -user=mysql &* 登录MySQL客户端控制台设置指定root密码/usr/local/mysql/bin/mysql -u rootSET PASSWORD FOR rootlocalhost=PASSWORD(Amri31n);* 添加MySQL启动脚本,设置为只有运行级别3自启动cp /usr/local/mysql/share/mysql/mysql.server /etc/rc.d/init.d/mysqldchown root.root /etc/rc.d/init.d/mysqldchmod 755 /etc/rc.d/init.d/mysqldchkconfig -add mysqldchkconfig -list mysqldchkconfig -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, as before_match, as after_match) as content from t1 join documents as d on t1.id = d.id and t1.query=$keyword;index=test1;
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号