一、安装 MySQL 和 Sphinx 引擎
1、下载 mysql-5.1.54.tar.gz 解压至 /root/mysql/mysql-5.1.54 目录
2、下载 sphinx-0.9.9.tar.gz 解压至 /root/mysql/sphinx-0.9.9 目录
3、将 /root/mysql/sphinx-0.9.9/mysqlse 下的所有文件复制至 /root/mysql/mysql-5.1.54/storage/sphinx 目录
# cp -rf /root/mysql/sphinx-0.9.9/mysqlse /root/mysql/mysql-5.1.54/storage/sphinx
4、编译安装 mysql ,在 /root/mysql-5.1.54 目录下运行
# sh BUILD/autorun.sh
# ./configure --prefix=/usr/local/mysql --localstatedir=/usr/local/mysql/data --enable-thread-safe-client --enable-local-infile --enable-assembler --enable-community-features --enable-profiling --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static --with-charset=utf8 --with-collation=utf8_general_ci --with-extra-charsets=all --with-mysqld-user=mysql --without-embedded-server --with-big-tables --with-server-suffix=-community --with-unix-socket-path=/usr/local/mysql/etc/mysql.sock --without-debug --without-man --without-docs --with-plugins=partition,blackhole,csv,federated,heap,innobase,myisam,sphinx
# make && make install
# useradd mysql
# chown mysql:mysql /usr/local/mysql -R
# cd /usr/local/mysql
# bin/mysql_install_db --user=mysql
将 mysql 加入到系统服务中
# cp /root/mysql-5.1.54/support-files/mysql.server /etc/init.d/mysqld
# chkconfig --add mysqld
启动 mysqld 服务
# service mysqld start
复制 mysql 配置文件
# cp /root/mysql-5.1.54/support-files/my-medium.cnf /etc/my.cnf
5、然后进入 mysql 客户端命令行,运行 show engines 命令,看是不是有一个叫 sphinx 的 engine,有的话就表示sphinxSE(mysql 的 sphinx 引擎)安装正常了。
二、安装 sphinx
进入 /root/sphinx-0.9.9 目录,运行
# ./configure --prefix=/usr/local/sphinx --with-mysql=/usr/local/mysql
# make && make install
三、测试使用
1、准备测试数据
在 mysql 中执行 /usr/local/sphinx/etc 目录下 example.sql
mysql> source /usr/local/sphinx/etc/example.sql
进入 /usr/local/sphinx/etc 目录,创建配置文件
# cp sphinx-min.conf.dist sphinx.conf
2、创建索引文件
# /usr/local/sphinx/bin/indexer --all
3、使用 sphinx 客户端搜索
启动 sphinx 服务器端
# /usr/local/sphinx/bin/searchd
搜索 test 字串
# /usr/local/sphinx/bin/search test
4、使用 mysql sphinx 存储引擎搜索
首先要创建一张 sphinx 专用表
CREATE TABLE sphinx
(
id INTEGER UNSIGNED NOT NULL,
weight INTEGER NOT NULL,
QUERY VARCHAR(3072) NOT NULL,
group_id INTEGER,
INDEX(QUERY)
) ENGINE=SPHINX CONNECTION="sphinx://localhost:9312/test1"
修改查询索引:ALTER TABLE sphinx CONNECTION="sphinx://NEWHOST:NEWPORT/NEWINDEXNAME";
查看引擎状态:
mysql> SHOW ENGINE SPHINX STATUS;
mysql> SHOW STATUS LIKE 'sphinx_%';
全文检索查询语句
SELECT content, date_added FROM test.documents docs JOIN sphinx ON (docs.id=sphinx.id) WHERE QUERY="test;mode=any";
详细的使用大家可以参考官方的文档。
1、下载 mysql-5.1.54.tar.gz 解压至 /root/mysql/mysql-5.1.54 目录
2、下载 sphinx-0.9.9.tar.gz 解压至 /root/mysql/sphinx-0.9.9 目录
3、将 /root/mysql/sphinx-0.9.9/mysqlse 下的所有文件复制至 /root/mysql/mysql-5.1.54/storage/sphinx 目录
# cp -rf /root/mysql/sphinx-0.9.9/mysqlse /root/mysql/mysql-5.1.54/storage/sphinx
4、编译安装 mysql ,在 /root/mysql-5.1.54 目录下运行
# sh BUILD/autorun.sh
# ./configure --prefix=/usr/local/mysql --localstatedir=/usr/local/mysql/data --enable-thread-safe-client --enable-local-infile --enable-assembler --enable-community-features --enable-profiling --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static --with-charset=utf8 --with-collation=utf8_general_ci --with-extra-charsets=all --with-mysqld-user=mysql --without-embedded-server --with-big-tables --with-server-suffix=-community --with-unix-socket-path=/usr/local/mysql/etc/mysql.sock --without-debug --without-man --without-docs --with-plugins=partition,blackhole,csv,federated,heap,innobase,myisam,sphinx
# make && make install
# useradd mysql
# chown mysql:mysql /usr/local/mysql -R
# cd /usr/local/mysql
# bin/mysql_install_db --user=mysql
将 mysql 加入到系统服务中
# cp /root/mysql-5.1.54/support-files/mysql.server /etc/init.d/mysqld
# chkconfig --add mysqld
启动 mysqld 服务
# service mysqld start
复制 mysql 配置文件
# cp /root/mysql-5.1.54/support-files/my-medium.cnf /etc/my.cnf
5、然后进入 mysql 客户端命令行,运行 show engines 命令,看是不是有一个叫 sphinx 的 engine,有的话就表示sphinxSE(mysql 的 sphinx 引擎)安装正常了。
二、安装 sphinx
进入 /root/sphinx-0.9.9 目录,运行
# ./configure --prefix=/usr/local/sphinx --with-mysql=/usr/local/mysql
# make && make install
三、测试使用
1、准备测试数据
在 mysql 中执行 /usr/local/sphinx/etc 目录下 example.sql
mysql> source /usr/local/sphinx/etc/example.sql
进入 /usr/local/sphinx/etc 目录,创建配置文件
# cp sphinx-min.conf.dist sphinx.conf
2、创建索引文件
# /usr/local/sphinx/bin/indexer --all
3、使用 sphinx 客户端搜索
启动 sphinx 服务器端
# /usr/local/sphinx/bin/searchd
搜索 test 字串
# /usr/local/sphinx/bin/search test
4、使用 mysql sphinx 存储引擎搜索
首先要创建一张 sphinx 专用表
CREATE TABLE sphinx
(
id INTEGER UNSIGNED NOT NULL,
weight INTEGER NOT NULL,
QUERY VARCHAR(3072) NOT NULL,
group_id INTEGER,
INDEX(QUERY)
) ENGINE=SPHINX CONNECTION="sphinx://localhost:9312/test1"
修改查询索引:ALTER TABLE sphinx CONNECTION="sphinx://NEWHOST:NEWPORT/NEWINDEXNAME";
查看引擎状态:
mysql> SHOW ENGINE SPHINX STATUS;
mysql> SHOW STATUS LIKE 'sphinx_%';
全文检索查询语句
SELECT content, date_added FROM test.documents docs JOIN sphinx ON (docs.id=sphinx.id) WHERE QUERY="test;mode=any";
详细的使用大家可以参考官方的文档。