Coreseek-3.2.14稳定版本安装部署步骤

发表时间:2014-08-15  分类:sphinx  浏览次数:3045

这个安装步骤很久之前使用coreseek时写下的。整理下文件发现。发到博客,记录下。

由于本人使用的是,coreseek稳定版本,基于sphinx的版本过旧。所以php sphinx扩展不得不使用旧版本。

首先,引用coreseek官方的介绍。

Coreseek 是一款中文全文检索/搜索软件,以GPLv2许可协议开源发布,基于Sphinx研发并独立发布,专攻中文搜索和信息处理领域,适用于行业/垂直搜索、论坛/站内搜索、数据库搜索、文档/文献检索、信息检索、数据挖掘等应用场景,用户可以免费下载使用;同时针对有实际需要的客户,我们还提供专业的搜索技术与本地化的Sphinx技术支持服务(客户中,记录量最大已超过30亿条,文本容量最大已超过5TB)。我们也提供了QQ群、MSN群,广大用户可以在线及时沟通交流。

注意点:

Coreseek-3.2.14基于Sphinx 0.9.9 release开发

所以使用PHP  Sphinx扩展,得使用1.2.0版本,否则与libsphinxclient版本不符,不能使用

Sphinx0.9.9 不支持 sql_field_string

sql_attr_str2ordinal 配置文件这个配置要去掉


1先安装mmseg3

wget http://www.coreseek.cn/uploads/csft/3.2/coreseek-3.2.14.tar.gz
tar zxvf coreseek-4.1-beta.tar.gz
  
cd coreseek-3.2.14
cd mmseg-3.2.14
./bootstrap
./configure --prefix=/usr/local/mmseg3
make && make install

遇到的问题:

error: cannot find input file: src/Makefile.in

或者遇到其他类似error错误时...

解决方案:

依次执行下面的命令,我运行'aclocal'时又出现了错误,解决方案请看下文描述

# yum -y install libtool
# aclocal
# libtoolize --force
# automake --add-missing
# autoconf
# autoheader
# make clean

安装好'libtool'继续从'aclocal'开始执行上面提到的一串命令,执行完后再运行最开始的安装流程即可

2安装coreseek

$ cd csft-3.2.14 或者 cd csft-4.0.1 或者 cd csft-4.1
$ sh buildconf.sh    #输出的warning信息可以忽略,如果出现error则需要解决
$ ./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问题,可以查看MySQL数据源安装说明
$ make && make install
$ cd ..
##测试mmseg分词,coreseek搜索(需要预先设置好字符集为zh_CN.UTF-8,确保正确显示中文)
$ cd testpack
$ cat var/test/test.xml    #此时应该正确显示中文
$ /usr/local/mmseg3/bin/mmseg -d /usr/local/mmseg3/etc var/test/test.xml
$ /usr/local/coreseek/bin/indexer -c etc/csft.conf --all
$ /usr/local/coreseek/bin/search -c etc/csft.conf 网络搜索

3,创建增量表

创建sphinx统计表

CREATE TABLE `coreseek_counter` (
  `counterid` int(11) unsigned NOT NULL,
  `max_doc_id` int(11) NOT NULL DEFAULT '0',
  PRIMARY KEY (`counterid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

4,sphinx配置文件

下面为demo的conf文件

#
# Minimal Sphinx configuration sample (clean, simple, functional)
#
#源定义
source vp
{
    type                    = mysql
  
    sql_host                = localhost
    sql_user                = root
    sql_pass                = 123456
    sql_db                  = test
    sql_port                = 3306  # optional, default is 3306
  
        sql_query_pre                           = SET NAMES utf8
        sql_query_pre                           = replace into coreseek_counter select 1 ,max(id) from documents
    sql_query               = \
        SELECT id,id as rid, group_id, UNIX_TIMESTAMP(date_added) AS date_added, title, content \
        FROM documents where id <=(SELECT max_doc_id FROM coreseek_counter WHERE counterid=1)
  
    sql_attr_uint           = group_id
    sql_attr_timestamp      = date_added
    #sql_attr_string = title
    sql_attr_uint = rid
    #sql_attr_string = content
    sql_query_info          = SELECT * FROM documents WHERE id=$id
}
  
#增量源定义
source test_increment : vp
{
  
    sql_query_pre = SET NAMES utf8
    sql_query = SELECT id,id as rid, group_id, UNIX_TIMESTAMP(date_added) AS date_added, title, content \
        FROM documents where id >(SELECT max_doc_id FROM coreseek_counter WHERE counterid=1)
}
  
  
#主索引
index test
{
    source                  = vp
    path                    = /usr/local/coreseek3/var/data/test
    docinfo                 = extern
    charset_type        = zh_cn.utf-8
   #stopwords = /path/to/stopwords.txt #可选设置,表示停止词文件,该文件中的词汇(也可以为单字)不参与搜索;文件格式为普通UTF-8文本文件,每行一个;
    charset_dictpath = /usr/local/mmseg3/etc/
    ngram_len               = 0
}
  
#增量索引
index test_increment : test
{
   source = test_increment
   path  = /usr/local/coreseek3/var/data/increment
}
  
  
indexer
{
    mem_limit               = 200M
}
  
  
searchd
{
    port                    = 9312
    log                     = /usr/local/coreseek3/var/log/searchd.log
    query_log               = /usr/local/coreseek3/var/log/query.log
    read_timeout            = 5
    max_children            = 30
    pid_file                = /usr/local/coreseek3/var/log/searchd.pid
    max_matches             = 1000
    seamless_rotate         = 1
    preopen_indexes         = 0
    unlink_old              = 1
}

5, Sphinx扩展安装安装

1, 安装依赖libsphinxclient

# cd /var/install/ coreseek-3.2.14/csft-3.2/api/libsphinxclient/
# ./configure  --prefix=/usr/local/sphinxclient

configure: creating./config.status

config.status: creatingMakefile

config.status: error:cannot find input file: Makefile.in   #报错configure失败    


//处理configure报错

编译过程中报了一个config.status: error: cannot find input file:src/Makefile.in这个的错误,然后运行下列指令再次编译就能通过了:

# aclocal
# libtoolize --force
# automake --add-missing
# autoconf
# autoheader
# make clean

//从新configure编译

# ./configure
# make && make install

2, 安装sphinx的PHP扩展

http://pecl.php.net/package/sphinx

# wget http://pecl.php.net/get/sphinx-1.2.0.tgz
# tar zxvf sphinx-1.2.0.tgz
# cd sphinx-1.2.0
# phpize
# ./configure --with-php-config=/usr/bin/php-config --with-sphinx=/usr/local/sphinxclient
# make && make install
# vim /etc/php.ini
extension=sphinx.so
  
#killall php-fpm
#/usr/local/php/sbi/php-fpm  #启动php-fpm
  
# /usr/local/php/bin/php –m  #看下是否已经有sphinx模块了

3,测试sphinx

$s = new SphinxClient();
$s->setServer("localhost", 9312);
$s->setMatchMode(SPH_MATCH_ANY);
//$s->setMaxQueryTime(3);
$s->SetLimits ( 0, 10, 1000, 0 );
$result = $s->query(‘驴子博客’, 'test');#查询
$err = $s->GetLastError();  
var_dump($result);exit;

6,调用命令列表:

1启动后台服务(必须开启)

/usr/local/coreseek3/bin/searchd -c /usr/local/coreseek3/etc/vp.conf

2, 执行索引(查询、测试前必须执行一次)

/usr/local/coreseek3/bin/indexer -c /usr/local/coreseek3/etc/vp.conf --all –rotate

3, 执行增量索引

/usr/local/coreseek3/bin/indexer -c /usr/local/coreseek3/etc/vp.conf  test_increment –rotate

4, 合并索引

/usr/local/coreseek3/bin/indexer -c /usr/local/coreseek3/etc/vp.conf --merge test test_increment --rotate --merge-dst-range deleted 0 0

(为了防止多个关键字指向同一个文档加上--merge-dst-range deleted 0 0)

5, 命令行检索测试

# /usr/local/coreseek3/bin/search -c /usr/local/coreseek3/etc/vp.conf  驴子博客

6,关闭后台searchd服务

/usr/local/coreseek3/bin/searchd -c /usr/local/coreseek3/etc/vp.conf --stop







评论列表

  • 网友   2017-04-17 15:37
    不能在官网上下载源码包,是否有大神可以帮忙解决 求助中
  • 网友   2017-04-17 15:35
    wget http://www.coreseek.cn/uploads/csft/3.2/coreseek-3.2.14.tar.gz 第一句就开始报错:Connection timed out
  • 2 篇文章 1/1 页

提交评论