coreseek搜索服务1

 

痛定思痛,终得成功  。。微笑 

 

环境linux的Centos-5 

1 介绍

coreseek 给予Sphinx研发的独立搜索引擎, 适用于行业/垂直搜索、论坛/站内搜索、数据库搜索、文档/文献检索、信息检索、数据挖掘等应用场

coreseek官网: http://www.coreseek.cn/

2 版本 :稳定版3.2  测试版 4.1 最新版5 

 

 1)预装软件包,一键安装:

    yum install make gcc g++ gcc-c++ libtool autoconf automake imake mysql-devel libxml2-devel expat-devel

  2) 基础的依赖包 m4、autoconf、automake、libtool 的升级与安装

  可以用rpm -qa | grep 包名 ,来查看预装的包的版本和名称,可以用whereis 命令来找到之前的安装包的位置 

  升级与安装说明:http://www.coreseek.cn/products-install/install_on_macosx/#sysdep

 3)安装MySQL,提供MySQL数据源支持

 安装的时候出点问题,因为我之前安装过server 和client这两个包,但因为coreseek需要用到Mysql的头文件和库文件,

 但我系统中没有,之后安装了devel和share安装包就找到了。

 linux各种版本软件查找地址:http://mirrors.sohu.com/

  Mysql的安装包和版本:

MySQL-server-community-5.1.73-1.rhel5

MySQL-client-community-5.1.73-1.rhel5

MySQL-devel-community-5.1.73-1.rhel5

MySQL-shared-5.5.34-1.linux2.6

 头文件和库文件的处理:http://www.coreseek.cn/products-install/install_on_macosx/#sysdep

 但我在安装的时候直接引用Mysql自己的头和库并没有进行拷贝。

 4) 安装coreseek 

  $ curl -O -L http://www.coreseek.cn/uploads/csft/3.2/coreseek-3.2.14.tar.gz

  $ tar xzvf coreseek-3.2.14.tar.gz

  $ cd coreseek-3.2.14

 

#安装mmseg,分词库

  $ cd mmseg-3.2.14

  $ ./bootstrap

  $ ./configure --prefix=/usr/local/mmseg3

  $ make && make install

  

 ##安装coreseek,需提前安装mysql以支持mysql数据源

        $ cd csft-3.2.14

        $ 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 --with-mysql-includes=/opt/local/include/mysql5/mysql --with-mysql-libs=/opt/local/lib/mysql5/mysql

        $ make && make install

        $ cd ..

 

--with-mysql-includes=/opt/local/include/mysql5/mysql   Mysql头文件所在的目录

--with-mysql-libs=/opt/local/lib/mysql5/mysql Mysql二进制文件所在的目录 

 

 

5) Mysql为数据源的配置文件配置(主索引和增量索引配置) ,一般主索引每天午夜跑一次,增量索引半分钟或者一分钟跑一次

   可以根据安装包下面的etc/sphinx.conf.dist 文件修改

 

# 主索引+增量索引处理数据 ,主索引一天重建一次,增量索引 几面中创建一次解决近似更新的问题 

 

 

# 1 documents Source 数据来源

source documents

{

   type                    = mysql

   sql_host                = 192.168.142.128

   sql_user                = root

   sql_pass                =  123456

   sql_db                  = test

   sql_port                = 3306

   sql_query_pre           = SET NAMES utf8

   sql_query_pre    = REPLACE INTO sph_counter SELECT 1, MAX(id) FROM documents

   sql_query               =    SELECT id, group_id, UNIX_TIMESTAMP(date_added) AS date_added, title, content  FROM documents where id<=( SELECT max_doc_id FROM sph_counter WHERE counter_id=1 )

   

   sql_attr_uint           = group_id                                              

   sql_attr_timestamp      = date_added

 

   sql_query_info_pre      = SET NAMES utf8

   sql_query_info          = SELECT * FROM documents WHERE id=$id

}

 

# 1 web_tags Source delta,增量数据来源 

source documentsDelta : documents

{

   sql_query_pre           = SET NAMES utf8

   sql_query               =   SELECT id, group_id, UNIX_TIMESTAMP(date_added) AS date_added, title, content  FROM documents where id>( SELECT max_doc_id FROM sph_counter WHERE counter_id=1 )

}

 

 

# 1  documentsIndex Index 索引 

index documentsIndex

{

   source            = documents 

   path            = /usr/local/coreseek/var/data/documents1

   docinfo            = extern

   mlock            = 0

   morphology        = none

   min_word_len        = 1

   html_strip                = 0

 

 

   charset_dictpath = /usr/local/mmseg3/etc/

   charset_type        = zh_cn.utf-8

}

 

# 1 documents1 Index delta 增量索引 

index documents1Delta : documentsIndex

{

   source            = documentsDelta

   path            = /usr/local/coreseek/var/data/documents1Delta 

}

 

 

#---------------------------------------------------------------------------------------------------------------

 

#全局index定义

indexer

{

   mem_limit            = 1024M

}

 

#searchd服务定义

searchd

{

   listen                  =   9312

   read_timeout        = 50

   max_children        = 30

   max_matches            = 1000000

   seamless_rotate        = 0

   preopen_indexes        = 0

   unlink_old            = 1

   pid_file = /usr/local/coreseek/var/log/searchd_mysql.pid  

   log = /usr/local/coreseek/var/log/searchd_mysql.log        

   query_log = /usr/local/coreseek/var/log/query_mysql.log 

}

 

 

 

6)测试部署是否正确 /usr/local/coreseek/bin/indexer -c ../etc/csft.conf

   创建整体索引:/usr/local/coreseek/bin/indexer -c ../etc/csft.conf --all --rotate

   

开启搜索服务:  /usr/local/coreseek/bin/searchd -c ../etc/csft.conf 

停止搜索服务:  /usr/local/coreseek/bin/searchd --stop

     重建单个索引:

/usr/local/coreseek/bin/indexer documentsIndex --rotate     重建主索引,自动生效  

/usr/local/coreseek/bin/indexer documents1Delta   --rotate   重建增量索引,不重启自动生效

 

     查询检索包含关键字“国外”的数据    

/usr/local/coreseek/bin/search -c ../etc/csft.conf -a    

 

7)

 

你需要把启动命令加到开机自启动里

把重建索引命令加到计划任务里每天执行 

 

下面两个任务,第一个增量每分钟跑一次,第二个主索引,每天1点跑一次

linux任务cron使用(http://linux.chinaunix.net/techdoc/beginner/2009/10/25/1141243.shtml)

*/1 * * * *     /usr/local/coreseek/bin/delta.sh

* 1 * * *       /usr/local/coreseek/bin/main.sh

 

把下面两个命令分别放到各自的索引sh中即可

 /usr/local/coreseek/bin/indexer documentsIndex --rotate     重建主索引,自动生效  

/usr/local/coreseek/bin/indexer documents1Delta   --rotate   重建增量索引,不重启自动生效

 

 8) 附件中为java调用的程序 和测试数据库 

 

 

 

 

 

 

 

你可能感兴趣的:(coreseek)