centos7 coreseek4.1编译安装
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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编译安装的主要内容,如果未能解决你的问题,请参考以下文章
整理Linux下中文检索引擎coreseek4安装,以及PHP使用sphinx的三种方式(sphinxapi,sphinx的php扩展,SphinxSe作为mysql存储引擎)