sphinx安装

首先在你的linux上先下载一个coreseek的一个linux的安装包
 
因为官网的下载地址已经不存在因此这里我已经以其余渠道下载完成
 
打开linux首先安装以下依赖包;(若是有的话只须要更新)
  在cd /usr目录下
一、yum -y install m4 autoconf automake libtool
 
2yum -y install gcc gcc-c++ wget
 
3yum -y install mysql-devel
 
##mmseg3是一个中文分词插件
 
若是没有下载的话能够将根本文档带的安装包上传到linux
 
若是安装包已经放好
 
执行以下命令:
或把安装包用fz传到usr目录下
tar zxvf coreseek-3.2.14.tar.gz                 解压命令
 
cd coreseek-3.2.14                          进入目录
 
cd mmseg-3.2.14/                           进入中文分词插件
  
./bootstrap                                 
 
./configure --prefix=/usr/local/mmseg3          检测配置
 
make  && make install                      编译 &&  编译安装
 
echo $? 输出0表明没错
cd../csft3.2.14/                      进入配置目录
 
shbuildconf.sh                     
执行脚本
./configure --prefix=/usr/local/coreseek --without-python --without-unixodbc --with-mmseg --with-mmseg-includes=/usr/local/mmseg3/include/mmseg/ --with-mmseg-libs=/usr/local/mmseg3/lib/ --with-mysql --host=arm                       
                                      检测配置
cd /usr/local  看有没有mmseg3
cd ../
cd coreseek-3.2.14/
cd csft-3.2.14/
安装过程须要修改一个配置文件
win安装包找到改好后替换掉linux 内的此文件
vi src/sphinxexpr.cpp
 
而后将全部的T val = ExprEval ( this->m_pArg, tMatch ).....修改成
 
    T val = this->ExprEval ( this->m_pArg, tMatch )
(建议你们将此文件拿到本地进行修改)
替换后执行[root@localhost csft-3.2.14]# make
make install
 
cd /usr/local/coreseek/etc                        
 进入coreseek安装完成的路径
 
输入ls会看到3个文件
example.sql  sphinx.conf.dist  sphinx-min.conf.dist
如今已经基本安装完成
 
其中example.sql是示例sql脚本咱们将其导入到数据库中的test数据库中做为测试数据(会建立两张表 documentstags)
mysql -u root -p
show databases;
use test;
建立表
source /usr/local/coreseek/etc/example.sql
exit;
建立vi sphinx.conf
输入如下内容:
source src1
{
type = mysql
sql_host = 192.168.214.128
sql_user = root
sql_pass = root
sql_db = test
sql_port = 3306 # optional, default is 3306
sql_sock                              = /tmp/mysql.sock
sql_query_pre = SET NAMES utf8
sql_query = SELECT id, group_id, UNIX_TIMESTAMP(date_added) AS date_added, title, content FROM documents
sql_attr_uint = group_id
sql_attr_timestamp = date_added
sql_query_info = SELECT * FROM documents WHERE id=$id
}
source src2 : src1
{
sql_query = SELECT `id`, 2 AS table_id, `username`, `password`, `email`, `salt`, `from` FROM table_2
}
index test1
{
source = src1
path = /usr/local/coreseek/var/data/test1
docinfo = extern
charset_type = zh_cn.utf-8
mlock = 0
morphology = none
min_word_len = 1
html_strip = 0
charset_dictpath = /usr/local/mmseg3/etc/
ngram_len                    = 0
}
index test2 : test1
{
source = src2
path = E:/SQL_DATA/coreseek/var/data/table_2
}
 
indexer
{
mem_limit = 32M
searchd
{
port = 9312
log = /usr/local/coreseek/var/log/searchd.log
query_log = /usr/local/coreseek/var/log/query.log
read_timeout = 5
max_children = 30
pid_file = /usr/local/coreseek/var/log/searchd.pid
max_matches = 1000
seamless_rotate = 1
preopen_indexes = 0
unlink_old = 1
}
 
 
进入 cd /etc/
打开 vim ld.so.conf
添加:/usr/local/mysql/lib
刷新 ldconfig
 
说明:
代码段source src1{***} 表明数据源里面主要包含了数据库的配置信息,src1表示数据源名字,能够随便写。
代码段index test1{***} 表明为哪一个数据源建立索引,source *** 是成对出现的,其中的source参数的值必须是某一个数据源的名字。
其余参数能够查看手册,这里再也不赘述。
 
 
生成索引:
 
/usr/local/coreseek/bin/indexer -c /usr/local/coreseek/etc/sphinx.conf --all
其中参数--all表示生成全部索引
固然也能够是索引的名字例如:
/usr/local/coreseek/bin/indexer -c /usr/local/coreseek/etc/sphinx.conf test1
 
 
执行后能够在/usr/local/coreseek/var/data目录中看到多出一些文件,是以索引名为文件名的不一样的扩展名的文件
在不启动sphinx的状况下便可测试命令:
 
(这是开启sphinx的命令行搜索就是说 number是你要查询的数据名称)
 /usr/local/coreseek/bin/searchd -c /usr/local/coreseek/etc/sphinx.conf
(searchd是开启sphinx的搜索服务功能)
Php操做linux上的sphinx
在站点域名目录下建立一个文件列如test.php
在test.php文件中写入以下内容;
(注意与test同级须要将自己的sphinxapi类加载进来)
<?php
header("content-type:text/html;charset=utf8");
include'./sphinxapi.php';
$sphinx= new SphinxClient();
$sphinx->SetServer('你linux上的ip地址',9312);
$res=$sphinx->Query("搜索字段","*");  //这里的*表明匹配全部定义好的规则
print_r($res);
?>
 
vim /etc/rc.local 自启动文件夹
相关文章
相关标签/搜索