让windows环境下的discuz论坛支持coreseek全文检索(v0.2)

一、Coreseek介绍

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

http://www.coreseek.cn/ 

 

二、windows下安装Coreseek

1、下载 http://www.coreseek.cn/uploads/csft/4.0/coreseek-4.1-win32.zip  coreseek-4.x版本,需先安装:Microsoft Visual C++ 2008 运行环境 (x86,1.7M)

2、 建立D:\usr\local\coreseek目录,解压缩coreseek-4.1-win32.zip

3、将上图解压缩的文件复制到 D:\usr\local\coreseek 目录

4、进入D:\usr\local\coreseek\etc 新建 discuz.conf配置文件,内容以下

 

#MySQL数据源配置,详情请查看:http://www.coreseek.cn/products-install/mysql/
#请先将var/test/documents.sql导入数据库,并配置好以下的MySQL用户密码数据库

#源定义
source mysql
{
    type                    = mysql

    sql_host                = localhost 
    sql_user                = root       #(替换成你mysql数据库的用户名)
    sql_pass                = dragonplan #(替换成你mysql数据库的密码)
    sql_db                    = bbs      #(替换成你discuz论坛数据库名)
    sql_port                = 3306       #(mysql默认端口)
    sql_query_pre            = SET NAMES utf8

    sql_query                = SELECT pid, fid, tid,authorid, dateline, author, subject, message FROM cdb_posts where first=1
                             #sql_query第一列id需为整数
                                  #author、subject、message 作为字符串/文本字段,被全文索引
    sql_attr_uint            = fid           #从SQL读取到的值必须为整数
    sql_attr_timestamp        = dateline #从SQL读取到的值必须为整数,作为时间属性

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

#index定义
index mysql
{
    source            = mysql             #对应的source名称
    path            = D:/usr/local/coreseek/var/data/mysql #请修改为实际使用的绝对路径,例如:D:/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 = D:/usr/local/coreseek/etc/ #Windows环境下设置,/符号结尾,最好给出绝对路径,例如:D:/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 = D:/usr/local/coreseek/var/log/searchd_mysql.pid  #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/...
    log = D:/usr/local/coreseek/var/log/searchd_mysql.log        #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/...
    query_log = D:/usr/local/coreseek/var/log/query_mysql.log #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/...
    binlog_path =                                #关闭binlog日志
}


5、建立检索

打开cmd命令行,进入 D:/usr/local/coreseek/bin 目录

执行

indexer -c d:\usr\local\coreseek\etc\discuz.conf --all

如下图:


6、运行索引

cmd 进入 D:/usr/local/coreseek/bin 目录 执行以下命令:

searchd -c d:\usr\local\coreseek\etc\discuz.conf

请注意:保持cmd窗口不要被关闭!否则索引服务将被关闭。

7、php全文检索

将 D:\usr\local\coreseek\api\sphinxapi.php 文件放到你discuz include目录下

require_once './include/common.inc.php'; require_once './include/sphinxapi.php';

$cl = new SphinxClient (); $cl->SetServer ( '127.0.0.1', 9312); $cl->SetConnectTimeout ( 1 ); $cl->SetArrayResult ( true ); $cl->SetMatchMode ( SPH_MATCH_ANY); $res = $cl->Query ( $keyword, "*" );

foreach($res['matches'] as $v) {    $arrID[]    = $v['id'];    } $sql = "SELECT pid,subject FROM {$tablepre}posts WHERE pid in(".join(',', $arrID).")"; $query = $db->query($sql); while($row = $db->fetch_array($query)) {  $list[] = $row; } echo '<pre>'; print_r($list); echo '</pre>';

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值