Coreseek站内搜索引擎搭建全过程
来源:互联网 发布:淘宝搜索不到域名 编辑:程序博客网 时间:2024/04/28 22:51
CoreSeek安装
http://www.coreseek.cn/products-install/install_on_bsd_linux/
比较常用的linux系统为 CentOS-5.5/5.6 安装coreseek需要预装以下软件,直接输入命令安装即可
yum install make gcc g++ gcc-c++ libtool autoconf automake imake mysql-devel libxml2-devel expat-devel
搜索系统建立指南
http://www.coreseek.cn/products-install/step_by_step/
PHP调用实例
晚上上面几个步骤后,最后一步是链接数据库并且按权重列出匹配的内容。
在输出前结果前要先获取到匹配的ID
if($res['matches']){foreach($res['matches'] as $value){ $arr[] = $value['id'];}$str =implode( ',', $arr );}else{echo "没有匹配到任何结果";$str="0";}
代码大概意思为:如果有匹配项,把匹配ID遍历出来并赋值到一个新数组$arr,然后把$arr分解成字符串并赋值到$str,有兴趣的话可以 echo $str 测试看看,显示结果格式为 id1,id2,id3
如果没有匹配项,$str则为0,并输出没有匹配到任何结果,下一步就是链接数据库,并在SQL语句中输出跟匹配ID相同的文章。
$conn=@mysql_connect("localhost", "root", "root") or die ("链接出错"); mysql_select_db("test",$conn);$sql = "SELECT * FROM documents WHERE id IN ($str)";$fh =@mysql_query($sql, $conn) or die(mysql_error());while($row=mysql_fetch_assoc($fh)){ echo "$row[title]<br />$row[content]<hr />";}
如果希望搜索结果高亮,把while部分替换成下面的代码
$options = array( 'before_match' => '<b style="color:red">', 'after_match' => '</b>', 'chunk_separator' => ' ... ', 'limit' => 60, 'around' => 3,);while($row=mysql_fetch_assoc($fh)){ $res = $cl->BuildExcerpts($row,'mysql',$keywords,$options);echo "<a href='$res[9]'>$res[3]</a><br />$res[17]<hr >";//print_r($res);}
第一个是高亮的参数,我配置成了加粗并红色显示。
如果不知道如何正确调用标题和内容,可以先 print_r($res) 找到标题和内容在哪个关键字段下。
BuildExcerpts(documents, index, words, options)
第一个参数为结果数组,第二个参数为索引名称,第三个则为搜索关键字,第四个就是高亮配置了。
附录
启动搜索服务
/usr/local/coreseek/bin/searchd -c /usr/local/coreseek/etc/csft.conf
停止搜索服务
/usr/local/coreseek/bin/searchd -c /usr/local/coreseek/etc/csft.conf --stop
强制关闭searchd服务
killall -9 searchd
建立索引
/usr/local/coreseek/bin/indexer -c /usr/local/coreseek/etc/csft.conf --all
更新索引(已启动搜索服务时使用)
/usr/local/coreseek/bin/indexer -c /usr/local/coreseek/etc/csft.conf --all --rotate
关键字检索
/usr/local/coreseek/bin/search -c /usr/local/coreseek/etc/csft.conf 网络搜索
常见错误
FATAL: failed to lock /usr/local/coreseek/var/data/mysql.spl: Resource temporarily unavailable, will not index. Try --rotate option.
在已启动searchd服务时执行 建立索引 就会出现如上错误,这时应该用 更新索引 命令,或者先 关闭searchd服务。也可已删除生成的索引文件,一般在/usr/local/coreseek/var/data 目录下
bind() failed on 0.0.0.0, retrying...
在已启动searchd服务时执行 启动搜索服务 就会出现如上错误,请先关闭searchd服务
欢迎转载,但请保留原文地址 http://www.sjyhome.com/linux/coreseek-build-overall-process.html
- Coreseek站内搜索引擎搭建全过程
- 站内搜索引擎
- 站内搜索引擎
- 站内搜索引擎
- 站内搜索引擎
- 如何搭建一个站内搜索引擎(二) 第2章 概述
- PHP+Mysql+Sphinx高效的站内搜索引擎搭建详释
- PHP+Mysql+Sphinx高效的站内搜索引擎搭建详释
- PHP+Mysql+Sphinx高效的站内搜索引擎搭建详释
- PHP+Mysql+Sphinx高效的站内搜索引擎搭建详释
- sphinx/coreseek 安装全过程
- sphinx中文检索引擎coreseek+php+mysql搭建
- 站内搜索引擎真伪鉴别
- 站内搜索引擎(ASP.NET)
- Lucene站内搜索引擎
- HTML站内搜索引擎
- Coreseek中文检索引擎
- 如何搭建一个站内搜索引擎(一) 第1章 写在最前
- C/C++中“空语句”的说明
- SpringMVC4+Hibernate4运行报错Could not obtain transaction-synchronized Session for current thread
- 如何解除vs中运行结果框闪退的三种方法
- 今天是最幸福的一天
- 网络服务leader-follower线程池模式
- Coreseek站内搜索引擎搭建全过程
- Dreamweaver创建文档
- B树、B+树、B*树
- 【思维导图】软件开发工具
- java中String类的方法和说明
- 修改Win7 Win8 Win2012远程桌面端口
- Java 之 JDK 的下载,安装,及Java环境配置教程(三)
- Android调用系统分享和指定app分享-微信朋友圈图文分享和qq分享
- java中的闭包与回调