这里是我自己整理的一些资料,大家不懂的可以相互学习呀。。。

coreseek4.1 安装 自动更新+主索引+增量索引

Linux ZZT 1941次浏览 已收录 0个评论

转载

转载:centos7 安装coreseek 4.1 自动更新+主索引+增量索引 以及php中coreseek的使用

下载安装:

下载地址:http://files.opstool.com/man/coreseek-4.1-beta.tar.gz

安装配置:

tar zxvf coreseek-4.1-beta.tar.gz
cd coreseek-4.1-beta
cd mmseg-3.2.14
./bootstrap
./configure --prefix=/usr/local/mmseg3
make && make install
cd ..
cd csft-4.1
sh buildconf.sh //(这个地方有可能生成不了configure文件,需要修改部分文件,具体内容参考http://blog.csdn.net/jcjc918/article/details/39032689)
./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=/www/server/mysql
make && make install

生成configure( sh buildconf.sh )报错的办法:

  报错提示:

  libstemmer_c/mkinc.mak:10: warning: source file 'runtime/utilities.c' is in a subdirectory,  
libstemmer_c/mkinc.mak:10: but option 'subdir-objects' is disabled  
libstemmer_c/Makefile.am:3: 'libstemmer_c/mkinc.mak' included from here  
libstemmer_c/mkinc.mak:10: warning: source file 'libstemmer/libstemmer.c' is in a subdirectory,  
libstemmer_c/mkinc.mak:10: but option 'subdir-objects' is disabled  
libstemmer_c/Makefile.am:3: 'libstemmer_c/mkinc.mak' included from here  
/usr/local/share/automake-1.14/am/library.am: warning: 'libstemmer.a': linking libraries using a non-POSIX  
/usr/local/share/automake-1.14/am/library.am: archiver requires 'AM_PROG_AR' in 'configure.ac'  
libstemmer_c/Makefile.am:2: while processing library 'libstemmer.a'  
/usr/local/share/automake-1.14/am/library.am: warning: 'libsphinx.a': linking libraries using a non-POSIX  
/usr/local/share/automake-1.14/am/library.am: archiver requires 'AM_PROG_AR' in 'configure.ac'  
src/Makefile.am:14: while processing library 'libsphinx.a'  

  解决方案:
1. 在 csft-4.1/buildconf.sh 文件中,查找

  && aclocal \
 在其后面加上:

  && automake --add-missing \

2. 在 csft-4.1/configure.ac 文件中,查找:

  AM_INIT_AUTOMAKE([-Wall -Werror foreign])

  改为:

  AM_INIT_AUTOMAKE([-Wall foreign])

  继续查找:

  AC_PROG_RANLIB

   后面加上

   AM_PROG_AR

3. 最后,在 csft-4.1/src/sphinxexpr.cpp 文件中, 替换所有:

  T val = ExprEval ( this->m_pArg, tMatch );

 成为:

    `T val = this->ExprEval ( this->m_pArg, tMatch );  `

结束

配置示例文件:

 source bt
{
    type           = mysql

    sql_host       = localhost
    sql_user       = p2p
    sql_pass       = p2p
    sql_db         = p2p
    sql_port       = 3306

    sql_query_pre  = SET NAMES utf8
    sql_query_pre  = truncate table sphinx_temp_id
    sql_query_pre  = REPLACE INTO sphinx_temp_id SELECT 1,MAX(id) FROM info

    sql_query      = \
        SELECT id, name \
        FROM info WHERE id<=(SELECT temp_id FROM sphinx_temp_id)
}

source increment : bt
{
    sql_query_pre  = SET NAMES utf8

    sql_query      = \
        SELECT id, name \
        FROM info WHERE id>(SELECT temp_id FROM sphinx_temp_id)

    sql_query_post = UPDATE sphinx_temp_id SET temp_id=(SELECT max(id) FROM info) where id=1
}

index bt
{
    source            = bt
    path              = /usr/local/coreseek/var/data/bt
    charset_type      = zh_cn.utf-8
    charset_dictpath  = /usr/local/mmseg3/etc
}

index increment : bt
{
    source         = increment
    path           = /usr/local/coreseek/var/data/increment
}

indexer
{
    mem_limit      = 32M
}

searchd
{
    listen          = 9312
    listen          = 9306:mysql41
    log         = /usr/local/coreseek/var/log/searchd.log
    binlog_path = /usr/local/coreseek/var/log/binlog
    query_log       = /usr/local/coreseek/var/log/query.log
    read_timeout        = 5
    client_timeout      = 300
    max_children        = 30
    pid_file        = /usr/local/coreseek/var/log/searchd.pid
    max_matches     = 1000
    seamless_rotate     = 1
    preopen_indexes     = 1
    unlink_old      = 1
    mva_updates_pool    = 1M
    max_packet_size     = 8M
    max_filters     = 256
    max_filter_values   = 4096
    max_batch_queries   = 32
    workers         = threads # for RT to work
}

其中sphinx_temp_id表需要在数据库中自定义创建如下:

  create table if not exists sphinx_temp_id(
     id int(11) ,
     temp_id  int(11)
)

## 创建定时任务:

crontab任务,凌晨执行一次,主索引,目的是为了清空增量索引

   /usr/local/coreseek/bin/searchd --stop
    /usr/local/coreseek/bin/indexer --all
    /usr/local/coreseek/bin/searchd

crontab任务,每5分钟执行执行一次,增量索引,目的是为了尽量实时更新,将新增加的内容生成增量索引,然后合并到主索引


/usr/local/coreseek/bin/indexer increment --rotate /usr/local/coreseek/bin/indexer --merge bt increment --rotate

常用命令:

    生成索引
/usr/local/coreseek/bin/indexer --all
/usr/local/coreseek/bin/indexer -c /usr/local/coreseek/etc/csft.conf --all

/usr/local/coreseek/bin/indexer bt

/usr/local/coreseek/bin/indexer --merge bt increment

启动coreseek
/usr/local/coreseek/bin/searchd
/usr/local/coreseek/bin/searchd --stop

搜索测试
/usr/local/coreseek/bin/search 测试关键字


乐趣公园 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明coreseek4.1 安装 自动更新+主索引+增量索引
喜欢 (1)

文章评论已关闭!