指南快速说明
本文档用于PhpWind 和 Discuz! 的用户快速的部署全文搜索服务器。
Coreseek 搜索引擎2.5 是为国内网站站长设计的易于使用和部署的全文搜索服务器。他具有如下特点:
- 高性能 300M数据建立索引不超过15分钟,单节点平均查询响应时间小于0.5秒,平均每秒处理查询不低于5次;
- 支持中文分词 用户可以方便的添加自定义词组,可以增加别名(C++ => cplusplus);
- 支持使用Python脚本语言定义数据源;
- 支持MySQL和PostgreSQL作为数据源后端;
- 支持分布式;
- 支持多种查询表达式;
- 支持索引合并;
- 支持从多个索引联合查询;
- 在GPL协议下完全开放源码;
- 对于国内常用网站系统,部署难度不高于安装论坛程序;
安装流程:
安装系统依赖的软件包( 视频教程 )
系统的基础组件需要如下的软件包:- Active Python 2.5 ( http://www.activestate.com/Products/activepython/ )
- MySQL_Python 1.2.2 (http://sourceforge.net/project/showfiles.php?group_id=22307)安装完前面两个组件后,系统可以运行,但是需要手工修改配置文件。
安装配置界面需要的软件包:
- gtk-dev 2.12.9 (http://sourceforge.net/project/showfiles.php?group_id=98754)
- pycairo 1.4.12 (http://ftp.acc.umu.se/pub/GNOME/binaries/win32/pycairo/1.4/)
- pygobject 2.14.1 (http://ftp.acc.umu.se/pub/GNOME/binaries/win32/pygobject/2.14/)
- pygtk 2.12.1 (http://ftp.acc.umu.se/pub/GNOME/binaries/win32/pygtk/2.12)如果您下载的是完整版,前面提到的全部文件应该能在preq子目录中找到。
安装前面提到的全部软件包(注意:必须先安装Python和gtk)注意: 必须是Active Python,Python官方的版本缺少系统需要的Win32扩展支持,将导致系统无法工作。
注意:完成本步后,必须重新启动您的计算机。
安装设置搜索系统( 视频教程 )
执行 csft_setup_2.5.exe,安装搜索引擎v2.5。安装结束后,会自动启动配置界面。
点击“服务器配置按钮”,启动服务器配置界面。
- 在数据源类型中选择您的应用程序类型;
- 在数据库设置中填写正确的数据库配置信息,如不确定,请参考网站程序的设置。
( 视频教程 PhpWind | 视频教程Discuz )具体的设置文件位置如下:
PhpWind: $INSTALL_DIR\data\sql_config.php
Discuz!: $INSTALL_DIR\config.inc.php- 选择一个有效的目录用于存放索引文件,设置索引更新频率、时间等。采用系统默认值也可。
- 点击“测试连接”按钮,出现“成功连接”的提示后,点击“保存设置”。回到主界面,点击“重建主索引”按钮,对主索引进行初始化。
出现“主索引构造完成”的提示后,点击“安装为系统服务”按钮,将搜索服务和索引更新服务注册为Window系统服务。
手工启动上面的两个服务或重启Windows系统,启动Coreseek全文搜索系统。设置网站 [PhpWind]( 视频教程 )
§ 对现有文件的修改:
- /search.php
找到如下代码段:
$wind_in = 'sc'; require_once('global.php'); if ($_POST['schtype']=='gg') { ObHeader("http://www.google.cn/search?client=pub-1351572190040105&forid=1&ie=$db_charset&oe=$db_charset&hl=zh-CN&q=".rawurlencode($_POST['q'])); } $gp_allowsearch == 0 && Showmsg('search_group_right');修改为:
$wind_in = 'sc'; require_once('global.php'); if ($_POST['schtype']=='gg') { ObHeader("http://www.google.cn/search?client=pub-1351572190040105&forid=1&ie=$db_charset&oe=$db_charset&hl=zh-CN&q=".rawurlencode($_POST['q'])); } $gp_allowsearch == 0 && Showmsg('search_group_right'); // 全文插件代码开始 coreseek fulltext search plugin head InitGP(array('sch_area')); if (isset($sch_area)) { require_once('cspw.php'); header("Location: $url", TRUE, 301); exit(); } // 全文插件代码结束 coreseek fulltext search plugin tail由于目前全文插件并不实际处理搜索页面传入的除关键词外的其他信息,下面的修改可不进行。
*/template/wind/search.htm
找到如下代码:
<tr class="tr3 f_one"><th colspan="2">
<select name="orderway">
<option value="rank">相关度</option>
<option value="lastpost">最后回复时间</option>修改为:
<tr class="tr3 f_one"><th colspan="2">
<select name="orderway">
<!-- 全文搜索插件增加[开始] -->
<option value="rank">相关度</option>
<!-- 全文搜索插件增加[结束] -->
<option value="lastpost">最后回复时间</option>至此,插件安装完成。
设置网站[Discuz!]( 视频教程 )
全文搜索插件由以下部分构成:
完整的新增文件:
- /coreseek_search.php 与搜索服务器通讯,完成全文搜索作业;如果您的全文搜索服务器与论坛程序不在同一台机器上,您需要修改本文件。
- /search_coreseek.php 与Discuz! 系统集成
- /sphinxapi.php 与搜索服务器通讯的接口
- /templates/default/coreseek.htm 搜索结果页面的模板文件对现有文件的修改:
- /search.php
找到如下代码片段:} else { if($srchtype == 'qihoo') { require DISCUZ_ROOT.'./include/search_qihoo.inc.php'; exit(); } elseif(!$allowsearch) {修改为:
} else { // 全文插件代码开始 coreseek fulltext search plugin head if($srchtype == 'title' || $srchtype == 'fulltext') { require DISCUZ_ROOT.'./search_coreseek.php'; exit(); }else // 全文插件代码结束 coreseek fulltext search plugin tail if($srchtype == 'qihoo') { require DISCUZ_ROOT.'./include/search_qihoo.inc.php'; exit(); } elseif(!$allowsearch) {由于目前全文插件并不实际处理搜索页面传入的除关键词外的其他信息,下面的修改可不进行。
* /templates/default/search.htm
找到:<td><label for="orderby">{lang search_orderby}</label></td>
<td>
<select id="orderby1" name="orderby">
<option value="lastpost" selected="selected">{lang order_lastpost}</option>修改为:
<td><label for="orderby">{lang search_orderby}</label></td>
<td>
<select id="orderby1" name="orderby">
<!-- 全文搜索插件增加[开始] -->
<option value="rank" selected="selected">{lang order_rank}</option>
<!-- 全文搜索插件增加[结束] -->
<option value="lastpost" selected="selected">{lang order_lastpost}</option>
* /templates/default/templates.lang.php
找到:
'last_90_days' => '3 个月以来主题',
'last_180_days' => '6 个月以来主题',
'last_356_days' => '1 年以来主题',修改为:
'last_90_days' => '3 个月以来主题',
'last_180_days' => '6 个月以来主题',
'last_356_days' => '1 年以来主题',
/* 全文搜索插件增加[开始] */
'order_rank' => '相关度',
/* 全文搜索插件增加[结束] */至此,插件安装完成。
测试、运行
访问您的论坛系统,测试搜索功能。