全文检索-coreseek4.1

目录

基础介绍

Coreseek 是一款中文全文检索/搜索软件,以GPLv2许可协议开源发布,基于Sphinx研发并独立发布,专攻中文搜索和信息处理领域,适用于行业/垂直搜索、论坛/站内搜索、数据库搜索、文档/文献检索、信息检索、数据挖掘等应用场景。

准备工作

1、操作系统:CentOS 6.2(64位版本)

2、安装软件:Coreseek 4.1(目前的最新版本,基于Sphinx 2.0.2-dev版本发布),点击下载

3、基于Mysql检索先安装Mysql

安装步骤

依赖包更新:

#yum 更新
yum update
#依赖包安装
yum -y install gcc gcc-c++ libtool autoconf automake imake libxml2-devel

下载Coreseek并解压安装:

#创建下载文件夹
mkdir /home/softdownload
cd /home/softdownload

#下载文件
wget http://www.wapm.cn/uploads/csft/4.0/coreseek-4.1-beta.tar.gz
#或 指定下载位置
wget -P /home/softdownload http://www.wapm.cn/uploads/csft/4.0/coreseek-4.1-beta.tar.gz

#解压文件
tar zxvf coreseek-4.1-beta.tar.gz
#或 指定解压位置
tar zxvf coreseek-4.1-beta.tar.gz -C /home/softdownload

###################### 安装mmseg ######################
#进入mmseg分词文件夹
cd /home/softdownload/coreseek-4.1-beta/mmseg-3.2.14

#根据configure.in或configure.ac文件的内容,自动生成aclocal.m4文件
aclocal 
#通过libtool准备安装包 #运行后有一个错误,不用管它
libtoolize --force
#生成配置脚本
autoconf
#为configure创建模板文件
autoheader
#删除源代码(C\C++ code)生成的执行文件和所有的中间目标文件
make clean
#安装到/usr/local/mmseg
./configure --prefix=/usr/local/mmseg
make
make install

###################### 安装sphinx ######################
#安装到/usr/local/coreseek
cd /home/softdownload/coreseek-4.1-beta/csft-4.1
./configure --prefix=/usr/local/coreseek --without-python --with-mysql=/usr/local/mysql --with-mmseg=/usr/local/mmseg  --with-mmseg-includes=/usr/local/mmseg/include/mmseg/ --with-mmseg-libs=/usr/local/mmseg/lib/
make
make install

###################### 词库配置 ######################

cd /usr/local/mmseg/etc

#生成unigram.txt.uni
../bin/mmseg -u unigram.txt
#拷贝词库
mv unigram.txt.uni uni.lib

#配置sphinx
cd ../coreseek/etc
cp sphinx.conf.dist sphinx.conf
ln -s sphinx.conf csft.conf

在sphinx.conf中的index_exact_words下面加一行,指定分词源

charset_dictpath        = /usr/local/mmseg/etc/

查询一下mysql.sock的位置

find / -name mysql.sock

修改sphinx.conf中的sql_sock

sql_sock        = /tmp/mysql.sock

searchd服务搭建

要调用程序查询接口需要 启动searchd程序 下面把searchd注册为服务。

编写searchd的服务脚本并取名为searchd, 内容如下:

#!/bin/bash
#
# autoruntest  the shell script takes care of autoruntest auto start and stop
#
# chkconfig:   2345 20 80
# description: autoruntest
# processname:     /etc/rc.d/init.d/autoruntest

EXEC_PATH=/usr/local/coreseek/bin
EXEC=searchd
PID_FILE=/var/run/searchd.pid
DAEMON=/usr/local/coreseek/bin/searchd

# Source function library.
. /etc/rc.d/init.d/functions

if ! [ -x $EXEC_PATH/$EXEC ] ; then
       echo "ERROR: $EXEC_PATH/$EXEC not found"
       exit 1
fi

stop()
{
       echo "Stoping $EXEC ..."
       killall $DAEMON >/dev/null
       usleep 100
       echo "Shutting down $EXEC: [  OK  ]"      
}

start()
{
       echo "Starting $EXEC ..."
       $DAEMON > /dev/null &
       usleep 100
       echo "Starting $EXEC: [  OK  ]"         
}

restart()
{
       stop
       start
}


case "$1" in
       start)
       start
       ;;
       stop)
       stop
       ;;
       restart)
       restart
       ;;
       status)
       status -p $PID_FILE $DAEMON  
       ;;    
  *)
       echo "Usage: service $EXEC {start|stop|restart|status}"
       exit 1
esac

exit $?

该服务的脚本文件拷入/etc/rc.d/init.d 文件夹下保证其状态为可执行!!!

添加服务

chkconfig --add searchd

服务设置为自启动

chkconfig --level 35 searchd on

启动服务

service searchd start