zoukankan      html  css  js  c++  java
  • SphinxSE的安装

    SphinxSE 的使用

    SphinxSE 的使用 :wiki

    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'";

  • 相关阅读:
    Java中的数据类型
    java中变量的分类
    软考视频总结(二)——细化学习A
    软考视频总结(一)——蜕变
    Eclipse汉化
    IIS 服务或万维网发布服务,或者依赖这两种服务的某个服务未能启动。
    jQuery--编辑表格
    MVC之查询demo
    初识MVC之建项
    附加数据库 对于服务器 XXX失败
  • 原文地址:https://www.cnblogs.com/wicub/p/3262749.html
Copyright © 2011-2022 走看看