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

一,coreseek 简介 
官方http://www.coreseek.cn/ 
Coreseek 是一款中文全文检索/搜索软件,以GPLv2许可协议开源发布,基于Sphinx研发并独立发布,专攻中文搜索和信息处理领域,适用于行业/垂直搜索、论坛/站内搜索、数据库搜索、文档/文献检索、信息检索、数据挖掘等应用场景。商业使用(例如, 嵌入到其他程序中)需要获得商业授权。 
Coreseek是一个支持中文的全文搜索引擎,意图为其他应用提供高速、低空间占用、高相关度结果的中文全文搜索能力。CoreSeek可以非常容易的与SQL数据库和脚本语言集成。 
在Sphinx发行版本中提供的原生搜索API支持PHP、Python、Perl、Rudy和Java。搜索API非常轻量化,可以在几个小时之内移植到新的语言上。第三方API接口和插件提供了对Perl、C#、Haskell、Ruby-on-Rails支持,以及对其他可能的语言或者框架的支持。

版本介绍 
Coreseek 3.2 稳定版 
Coreseek 4.1 测式版 
Coreseek 5 最新版

二,安装Coreseek 
注:本文是以centos+mysql做为数据源支持为基础的coreseek安装教程.mysql安装略过.

1,下载coreseek 3.2稳定版,下载其他版本请去官网自行下载 
cd /usr/local/src/ 
wget 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 
安装coreseek之前需要先安装需要预装的软件:yum install make gcc g++ gcc-c++ libtool autoconf automake imake mysql-devel libxml2-devel expat-devel (注:这是centos 64位 
其他系统请参考http://www.coreseek.cn/product_install/install_on_bsd_linux/#deps

2,安装mmseg 
$ cd mmseg-3.2.14 
$ ./bootstrap #输出的warning信息可以忽略,如果出现error则需要解决 
$ ./configure --prefix=/usr/local/mmseg3 
$ make && make install 
$ cd ..

##如果提示libtool: unrecognized option `--tag=CC' ,请查看libtool问题解决方案 
##安装完成后,mmseg使用的词典和配置文件,将自动安装到/usr/local/mmseg3/etc中 
##中文分词测试,如果显示不正常,请检查当前环境下的locale和UTF-8中文字符显示设置 
$ /usr/local/mmseg3/bin/mmseg -d /usr/local/mmseg3/etc src/t1.txt 
中文/x 分/x 词/x 测试/x 
中国人/x 上海市/x

Word Splite took: 1 ms.

3,安装coreseek 
$ cd csft-3.2.14 
##执行configure,进行编译配置: 
$ 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 includes file则使用下面的编译命令

./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-includes=/alidata/server/mysql/include/ --with-mysql-libs=/alidata/server/mysql/bin/ 
make && make install

4,测式coreseek 
cd ../testpack 
$ /usr/local/coreseek/bin/indexer -c etc/csft.conf 
##以下为正常情况下的提示信息: 
Coreseek Fulltext 3.2 [ Sphinx 0.9.9-release (r2117)] 
Copyright (c) 2007-2010, 
Beijing Choice Software Technologies Inc (http://www.coreseek.com)

using config file 'etc/csft.conf'... 
total 0 reads, 0.000 sec, 0.0 kb/call avg, 0.0 msec/call avg 
total 0 writes, 0.000 sec, 0.0 kb/call avg, 0.0 msec/call avg 
## 
##csft-4.0版显示:ERROR: nothing to do. 
## 
$ /usr/local/coreseek/bin/indexer -c etc/csft.conf --all 
##以下为正常索引全部数据时的提示信息:(csft-4.0版类似) 
Coreseek Fulltext 3.2 [ Sphinx 0.9.9-release (r2117)] 
Copyright (c) 2007-2010, 
Beijing Choice Software Technologies Inc (http://www.coreseek.com)

using config file 'etc/csft.conf'... 
indexing index 'xml'... 
collected 3 docs, 0.0 MB 
sorted 0.0 Mhits, 100.0% done 
total 3 docs, 7585 bytes 
total 0.075 sec, 101043 bytes/sec, 39.96 docs/sec 
total 2 reads, 0.000 sec, 5.6 kb/call avg, 0.0 msec/call avg 
total 7 writes, 0.000 sec, 3.9 kb/call avg, 0.0 msec/call avg

$ /usr/local/coreseek/bin/indexer -c etc/csft.conf xml 
##以下为正常索引指定数据时的提示信息:(csft-4.0版类似) 
Coreseek Fulltext 3.2 [ Sphinx 0.9.9-release (r2117)] 
Copyright (c) 2007-2010, 
Beijing Choice Software Technologies Inc (http://www.coreseek.com)

using config file 'etc/csft.conf'... 
indexing index 'xml'... 
collected 3 docs, 0.0 MB 
sorted 0.0 Mhits, 100.0% done 
total 3 docs, 7585 bytes 
total 0.069 sec, 109614 bytes/sec, 43.35 docs/sec 
total 2 reads, 0.000 sec, 5.6 kb/call avg, 0.0 msec/call avg 
total 7 writes, 0.000 sec, 3.9 kb/call avg, 0.0 msec/call avg

$ /usr/local/coreseek/bin/search -c etc/csft.conf 
##以下为正常测试搜索时的提示信息:(csft-4.0版类似) 
Coreseek Fulltext 3.2 [ Sphinx 0.9.9-release (r2117)] 
Copyright (c) 2007-2010, 
Beijing Choice Software Technologies Inc (http://www.coreseek.com)

using config file 'etc/csft.conf'... 
index 'xml': query '': returned 3 matches of 3 total in 0.093 sec

displaying matches: 
1. document=1, weight=1, published=Thu Apr 1 22:20:07 2010, author_id=1 
2. document=2, weight=1, published=Thu Apr 1 23:25:48 2010, author_id=1 
3. document=3, weight=1, published=Thu Apr 1 12:01:00 2010, author_id=2

words:

$ /usr/local/coreseek/bin/search -c etc/csft.conf -a Twittter和Opera都提供了搜索服务 
##以下为正常测试搜索关键词时的提示信息:(csft-4.0版类似) 
Coreseek Fulltext 3.2 [ Sphinx 0.9.9-release (r2117)] 
Copyright (c) 2007-2010, 
Beijing Choice Software Technologies Inc (http://www.coreseek.com)

using config file 'etc/csft.conf'... 
index 'xml': query 'Twittter和Opera都提供了搜索服务 ': returned 3 matches of 3 total in 0.038 sec

displaying matches: 
1. document=3, weight=24, published=Thu Apr 1 12:01:00 2010, author_id=2 
2. document=1, weight=4, published=Thu Apr 1 22:20:07 2010, author_id=1 
3. document=2, weight=3, published=Thu Apr 1 23:25:48 2010, author_id=1

words: 
1. 'twittter': 1 documents, 3 hits 
2. '和': 3 documents, 15 hits 
3. 'opera': 1 documents, 25 hits 
4. '都': 2 documents, 4 hits 
5. '提供': 0 documents, 0 hits 
6. '了': 3 documents, 18 hits 
7. '搜索': 2 documents, 5 hits 
8. '服务': 1 documents, 1 hits

$ /usr/local/coreseek/bin/searchd -c etc/csft.conf 
##以下为正常开启搜索服务时的提示信息:(csft-4.0版类似) 
Coreseek Fulltext 3.2 [ Sphinx 0.9.9-release (r2117)] 
Copyright (c) 2007-2010, 
Beijing Choice Software Technologies Inc (http://www.coreseek.com)

using config file 'etc/csft.conf'... 
listening on all interfaces, port=9312

三,配置coreseek支持mysql数据源

1,配置csft_mysql.conf文件 
复制mysql配置文件到coreseek安装目录etc/下(比如/usr/local/coreseek/etc/) 
cp /usr/local/src/coreseek-3.2.14/testpack/etc/csft_mysql.conf /usr/local/coreseek/etc/ 
cd /usr/local/coreseek/etc/ 
vi csft_mysql.conf 
下面加红部分是需要你自己配置的

官方参考文档:数据源配置:mysql数据源 http://www.coreseek.cn/products-install/datasource/

其他数据源请参考官方
==============================================================
#源定义
source phperz
{
    type                    = mysql

sql_host                = localhost
    sql_user                = root
    sql_pass                = xxxx
    sql_db                    = phperz
    sql_port                = 3306
    sql_query_pre            = SET NAMES utf8

sql_query                = SELECT id,title,descs,status from article
                                                              #sql_query第一列id需为整数
                                                              #title、content作为字符串/文本字段,被全文索引
    sql_attr_uint            = status           #从SQL读取到的值必须为整数
    #sql_attr_timestamp        = date_added #从SQL读取到的值必须为整数,作为时间属性

sql_query_info_pre      = SET NAMES utf8                                        #命令行查询时,设置正确的字符集
    sql_query_info            = SELECT * FROM article WHERE id=$id #命令行查询时,从数据库读取原始数据信息
}

#index定义
index phperz
{
    source            = phperz             #对应的source名称
    path            =  /usr/local/coreseek/var/data/phperz #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/...
    docinfo            = extern
    mlock            = 0
    morphology        = none
    min_word_len        = 1
    html_strip                = 0

#中文分词配置,详情请查看:http://www.coreseek.cn/products-install/coreseek_mmseg/
    charset_dictpath = /usr/local/mmseg3/etc/ #BSD、Linux环境下设置,/符号结尾
    #charset_dictpath = etc/                             #Windows环境下设置,/符号结尾,最好给出绝对路径,例如:C:/usr/local/coreseek/etc/...
    charset_type        = zh_cn.utf-8
}
#全局index定义
indexer
{
    mem_limit            = 128M
}

#searchd服务定义
searchd
{
    listen                  =   9312
    read_timeout        = 5
    max_children        = 30
    max_matches            = 1000
    seamless_rotate        = 0
    preopen_indexes        = 0
    unlink_old            = 1
    pid_file = /usr/local/coreseek/var/log/searchd_mysql.pid  #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/...
    log = /usr/local/coreseek/var/log/searchd_mysql.log        #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/...
    query_log = /usr/local/coreseek/var/log/query_mysql.log #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/...
}
==============================================================

2,建立索引
路经部分需要改成你自己的地址
/usr/local/coreseek/bin/indexer -c /usr/local/coreseek/etc/csft_mysql.conf --all

可能出现的错误
ERROR: index 'phperz': sql_connect: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) (DSN=mysql://root:***@localhost:3306/phperz).
这是因为mysql的sock文件路经不正确导致的.
确认一下你的mysql.sock路经,建立一个软连接,比如
ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock

四,coreseek+php使用方式
复制安装止录下的/usr/local/src/coreseek-3.2.14/testpack/api/sphinxapi.php文件到你的项目里
你的程序里include sphinxapi.php
php使用方法见/usr/local/src/coreseek-3.2.14/testpack/api/test.php
另附我的使用方法:
===============================================================
$wd    =    trim($_GET['wd']);
include_once(JF_PATH."/config/sph_cfg.php");
include_once(JF_PATH."/include/sphinxapi.php");
$cl = new SphinxClient();
$cl->SetServer(SPH_SERVER_HOST, SPH_SERVER_POST);
$cl->SetConnectTimeout(3);
$cl->SetArrayResult(true);
$cl->SetMatchMode(1);
$cl->SetFilter("status", array(1));
$cl->SetLimits(0, 10);
$res = $cl->Query($wd, "phperz_www");

if ($res['matches']) {
$rownum = $res['total'];
foreach ($res['matches'] as $k => $v) {
$re = $this->db->get_one("select * from article where id=".$v['id']);
if (!empty($re)) {
    $list[] = $re;
}
}
}
print_r($list);
===============================================================

五,coreseek日常维护

启动
/usr/local/coreseek/bin/searchd -c /usr/local/coreseek/etc/csft_mysql.conf
停止
/usr/local/coreseek/bin/searchd -c /usr/local/coreseek/etc/csft_mysql.conf --stop
建立索引
/usr/local/coreseek/bin/indexer -c /usr/local/coreseek/etc/csft_mysql.conf --all
重建索引
/usr/local/coreseek/bin/indexer -c /usr/local/coreseek/etc/csft_mysql.conf --all --rotate

你需要把启动命令加到开机自启动里
把重建索引命令加到计划任务里每天执行

本文为phperz原创,转载请注明出处.

-- 关于中文分词整理最终的安装步骤
http://www.jb51.net/os/RedHat/462185.html 安装SPHINX的方法
https://www.ibm.com/developerworks/cn/opensource/os-sphinx/ SPHINX的理解
http://www.jb51.net/os/RedHat/462185.html coreseek中文分词的安装
http://www.cnblogs.com/qcfeng/p/7063512.html 通过热插件的方式安装SPHINX

0622centos下coreseek安装及使用方法的更多相关文章

  1. linux系统下yum 安装mysql的方法

    菜鸟一个,记录下yum 安装mysql的方法,给需要的朋友也做个参考吧. 弄了个新vps,想安装最新版的mysql,网上查了相关资料,记录如下: 1.安装查看有没有安装过:          yum ...

  2. Linux下memcached安装和启动方法

    Linux下memcached安装和启动方法 1. 首先下载memcached 和 libevent 包. Memcached用到了libevent这个库用于Socket的处理.下面是下载的两个包文件 ...

  3. coreseek 安装及使用方法详解

    coreseek 安装及使用 一般站点都需要搜索功能,如果是php+mysql站点,建议选择coreseek,如果是java站点建议使用lucene,coreseek 是一款很好的中文全文检索/搜索软 ...

  4. Linux下man安装及使用方法

    常用法: man [section] name 其中: section 指的是手册页的哪个部分,可以是1.2.3…8.,若不指定,man会按照次序依次查找,知道找到第一个. name 指的是某个命令. ...

  5. windows下postgresql安装失败解决方法:无法运行getlocales.exe

    今天要安装postgresql但是安装的时候出现错误 Unknown error while running C:\Users\jinjin\AppData\Local\Temp\postgresql ...

  6. Redis在Mac下的安装与使用方法

    首先从Redis官网http://www.redis.io去下载最新版本的Redis安装文件(此处以Redis版本为例进行说明).   Redis 2.6.16版本的下载地址:http://downl ...

  7. Deepin-linux下的linux的终端下软件安装和卸载方法

    1.方法一: sudo apt update #最好第一步是它 sudo apt install <package_name> --no-upgrade #安装该package但是不升级. ...

  8. windows下硬盘安装debian

    windows下硬盘安装debian 此方法在 windows8.1 + debian8.7.1 可用 配置系统安装镜像 1 在windows下格式化一个fat32的分区 2 把下载的debian-7 ...

  9. Windows下NodeJS安装与npm环境变量配置

    node.js下载:https://nodejs.org/en/download/ 参考:https://www.jianshu.com/p/812de13f1276 1.安装过程基本直接" ...

随机推荐

  1. 0x6A 网络流初步

    CH Round #17-C 这个算是一个技能点吧,不点不会,点了就没什么了.懒得写看书吧书上的1应该是0... 我又回来了太懒了不想翻书还是写写吧 必须边的判定条件:该边流量为0且两端的点在残余网络 ...

  2. B1085 [SCOI2005]骑士精神 A*搜索

    其实就是一个爆搜加剪枝.直接爆搜肯定不行,而A*算法则是想假如剩下都是最优的话,我当前步数还是不足以达到这个状态,那么就直接返回,因为最优状态也无法做到显然不行. 这道题可以用A*最主要就是因为有15 ...

  3. yii引入js文件

    作者:zccst 四.在视图层(../views/..)添加CSS文件或JavaScript文件 Yii::app()->clientScript->registerScriptFile( ...

  4. day-05 python函数

    # #-*- coding:utf-8 -*-# 1:编写一个名为 make_shirt()的函数,它接受一个尺码以及要印到 T 恤上的字样.这个函数应打印一个句子,概要地说明 T 恤的尺码和字样.d ...

  5. 【寒假集训系列DAY.1】

    Problem A. String Master(master.c/cpp/pas) 题目描述 所谓最长公共子串,比如串 A:“abcde”,串 B:“jcdkl”,则它们的最长公共子串为串 “cd” ...

  6. HBase与RDBMS的区别

    此讨论并不局限于HBase,也会延伸到MongoDB和Cassandra这样的NoSQL数据库. 1.RDBMS RDBMS有以下特点: 面向视图:RDBMS表使用固定的视图,表中的数据类型也会事先定 ...

  7. SQLServer2008 表连接时null 和 null 无法匹配?

    例如 select * from tbl_a a left join tbl_b b on b.docno=a.docno and b.project=a.project where a.docno= ...

  8. Android HTTP下载文件并保存到本地或SD卡

    想把文件保存到SD卡中,一定要知道SD卡的路径,获取SD卡路径: Environment.getExternalStorageDirectory() 另外,在保存之前要判断SD卡是否已经安装好,并且可 ...

  9. Unity引擎GUI之Text

    Text 文本 要显示的字符串. Font 字体 Font Style 加粗与倾斜 Font Size 字体大小 Line Spacing 行距,文本行之间的间距 Rich Text 勾选后,想要单独 ...

  10. HangFire的定时任务和Quartz.NET总结(三)Quartz 配置

    在一个Net Core需求中,需要在每天的凌晨三点去抓取两个电商仓库的剩余的每个料号的数量来写会自己的表中, 用到了HangFire的定时任务 这篇文章讲的很详细记录下   文章2  这篇更简单 Qu ...