首页 > 代码库 > centos7 coreseek4.1编译安装

centos7 coreseek4.1编译安装

环境依赖 

yum -y install automake libtool 

解压 coreseek包  内部有mmse  csf  

先安装mmseg

cd mmseg-3.2.14/

./bootstrap

automake: warning: autoconf input should be named ‘configure.ac‘, not ‘configure.in‘
警告不处理

./configure --prefix=/usr/local/mmseg

make && make install

安装sphinx服务

cd ../csft-3.2.14

sh buildconf.sh

出现错误 automake: warnings are treated as errors

总体意思是: archiver requires ‘AM_PROG_AR‘ in ‘configure.ac‘

解决办法:在 csft-4.1/configure.ac 文件中,查找:

AC_PROG_RANLIB

后面加上

AM_PROG_AR

最终格式为:AC_PROG_RANLIB AM_PROG_AR

再次执行 sh buildconf.sh 出现错误 configure.ac:61: error: required file ‘config/ar-lib‘ not found configure.ac:61: ‘automake --add-missing‘ can install ‘ar-lib‘

运行 automake --add-missing

再次执行 sh buildconf.sh

./configure --prefix=/usr/local/coreseek --without-unixodbc --with-mmseg --with-mmseg-includes=/usr/local/mmseg3/include/mmseg/ --with-mmseg-libs=/usr/local/mmseg3/lib/ --with-mysql=mysql路径 --with-python

make && make install

编译时出错 ‘ExprEval’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]

处理方法:

修改vim src/sphinxexpr.cpp

把所有 T val = ExprEval ( this->m_pArg, tMatch ); 修改为-> T val = this->ExprEval ( this->m_pArg, tMatch );

再次执行make && make install

错误 :
In file included from sphinxstd.cpp:24:0:

py_layer.h:16:27: fatal error: Python.h: No such file or directory

#include <Python.h>

这是由于缺少了python环境的devel支持包

解决办法:yum install python-devel


启动服务及测试

cd ../testpack/

##如要启动搜索服务,请使用

/usr/local/coreseek/bin/searchd -c etc/csft.conf(注意-c后面是相对路径)

##如要停止搜索服务,请使用

/usr/local/coreseek/bin/searchd -c etc/csft.conf --stop


/usr/local/src/coreseek-3.2.14/testpack/etc/pysource

支持python选项,会有一个

 

发现sphinx indexer依赖库ibmysqlclient.so.18找不到,通过编辑此文件来修复这个错误 /etc/ld.so.conf
vi /etc/ld.so.conf
将下面这句加到文件到尾部,并保存文件
/usr/local/mysql/lib
然后运行下面这个命令即可

ldconfig


php7不支持 类名作为构造函数 把接口文件更改成 __construct

 

sphinx 高亮显示

$sphinx->buildExcerpts($row,$index,$keyword,[$option]);

 

及时索引

创建 计数表

create table sph_counter (
->id int not null primary_key auto_increament,
->maxid int not null);

修改 sphinx 配置

创建主索引源 继承索引源 主索引 继承索引


主索引源
sql_query_pre = sql 语句 #在执行sql前执行的操作
sql_query_pre = set session_cache=off 关闭缓存
sql_query_pre = replace into 表 select 1 ,max(id) form 索引表 #更改计数器
sql_query = sql where id <= (select maxid from sph_cont where id =1);

 

#定义主索引源
source main
{
sql_query_pre = sql 语句 #在执行sql前执行的操作
sql_query_pre = replace into 表 select 1 ,max(id) form 索引表 #更改计数器
sql_query = sql where id <= (select maxid from sph_cont where id =1);
}

#增量索引源
source add : mian
{
sql_query = sql where id >(select maxid from sph_cont where id =1);
}

#主索引
index main
{
aource main
}
#增量索引
index add : mian
{
source add
}

建立
main.sh 主索引执行程序
add.sh 增索引执行程序

格式
#!/bin/bash
#main.sh
/usr/local/depends/coreseek/bin/indexer main --rotate >> /usr/local/depends/coreseek/var/log/main.log

创建计时器
crintab -e

*/5 * * * * 路径/add.sh 每个五分中 建立 一个增量索引
00 03 * * * 路径/main.sh 每天三点 全站索引一次

 

centos7 coreseek4.1编译安装