用PHPdig打造属于你自己的Google[图文教程]


Posted in PHP onFebruary 14, 2007

一、什么是PHPdig?

 PHPdig是国外非常流行的垂直搜索引擎产品(与其说是产品,不如说是一项区别于传统搜索引擎的搜索技术),采用PHP语言编写,利用了PHP程序运行的高效性,极大地提高了搜索反应速度,它可以像Google或者Baidu以及其它搜索引擎一样搜索互联网,搜索内容除了普通的网页外还包括txt, doc, xls, pdf等各式的文件,具有强大的内容搜索和文件解析功能。PHPdig同传统的搜索引擎一样,包含了以下三种最基本的技术:

 1.Spider技术

 2.网页结构化信息抽取技术或元数据采集技术

 3.分词、索引技术

 区别于传统搜索引擎,PHPdig适用于专业化更强、层次更深的个性化搜索引擎,利用它打造针对某一领域的垂直搜索引擎是最好的选择。

 二、如何获得这PHPdig?

 PHPdig是免费产品(需要保留版权),最新版本是 phpdig-1.8.9 为了避免Apache以及MYSQL的版本兼容性问题,建议采用较低级的版本,其网站地址是:http://www.phpdig.net ,下载地址是:http://www.phpdig.net/navigation.php?action=download 说明一下,我试用过phpdig-1.8.9版本,但出现了很多问题,改用PHPdig-1.8.8则问题较少。

 三、具体步骤

 1.获取产品

 访问http://www.phpdig.net/navigation.php?action=download下载PHPdig-1.8.8至桌面,解压缩至Apache服务器html目录,一般路径为:D:\usr\www\html\,(如果你没有安装Apache服务器请事先安装,推荐使用Mappm-Server v1.1.9 Final,Mappm-Server 采用傻瓜式安装,一次搞定,方便调试和运行 PHP/CGI MySQL 程序)。

 2.运行并配置PHPdig数据库

 打开浏览器输入http://localhost/phpdig/按回车键,页面列出PHPdig的所有文件及包含文件夹,找一找发现没有默认首页文件(default,index),单击search.php文件出现错误提示:Unable to connect to database : Check the connection script。提示无法完成数据库连接,原来我们还没有完成PHPdig的数据库配置。返回进入admin目录找到install.php文件,单击运行,乍一看,全英文界面(说明一下,PHPdig目前所有版本均不支持中文界面),没有关系,如果你有过汉化经验不妨自己动手将其汉化,这里提供一份我自己汉化的cn-language.php文档的下载(请将其拷贝至locales目录下)。另外你还需修改includes目录下的config.php文件(语言修改)和style.css文件(字体修改和样式修改)。

 进入install.php后系统要求我们输入PHPdig管理用户名和密码,默认情况下均为admin,进入后出现如下界面(汉化后):

用PHPdig打造属于你自己的Google[图文教程]
(图1)

 所需提供的信息有:

 如果你是在本地测试,请输入默认情况下的服务器名称localhost(localhost是Mappm-Server下的默认务服务器名称,也就是mysql的默认服务器名称,Mappm-Server内置mysql数据库)数据库服务器端口默认为3126,可以不填,数据库sock协议默认为空,用户名默认为root(Mappm-Server默认用户名),密码是你在安装Mappm-Server时输入的用户密码,PHPdig数据库名称默认为phpdig,可任意修改,同时,你可以对数据库中的数据表加前缀,默认为空。

 如果你要上传到与Internet相连的web服务器请向服务器提供商索要mysql服务器的名称或者IP地址以及数据库服务器端口、sock协议、用户名、密码等,数据库名称以及数据表前缀的设置同上。

 至于右边的四个单选按钮,你可以视情况而定,初次使用(安装)选择默认的“建立数据库”

 确认上述信息无误后单击安装按钮,如果连接数据库不成功会提示“不能连接数据库”的错误信息,如果数据库连接成功则会直接跳入管理页面如下图:

用PHPdig打造属于你自己的Google[图文教程]
(图2)

 3. 界面区域介绍

 区域1是一个文本输入区,默认文字有三行,都是以http开头,大家一看就知道在这里输入要spider的站点的网站地址(建议每次只spider一个网站)。

 区域2是spider选项,搜索深度是指对这个网站spider到几级目录,每页链接数是指针对某个网页最多抓取多少个下面的链接网页。默认情况下都为0,指的是对这个站点进行全站spider。

 区域3显示数据库状态信息,包括已经spider的网站、关键词、索引以及正在spider的站点信息等。

 区域4是一个下拉列表框,罗列出已经spider的站点的网址,选中其中的一个站点,在区域5可以对其进行清除和更新操作。

 区域5不仅提供了对区域4中所选站点的清除和更新操作外,还提供了相关的统计信息入口和对spider的控制等。

 4. 针对特定站点运行spider

 如果你对天极软件频道的内容很感兴趣,你就可以做一个比google更专业的搜索引擎来搜索天极软件的内容,你的这个搜索引擎将比google更全面更深层次。下面我们以spider天极软件频道的内容为例介绍一下如何spider一个网站。

 1)在图2的区域1中输入http://soft.yesky.com,搜索深度和每页链接数都保持默认为0

 2)单击spider按钮,页面跳转到spider信息页面,程序开始自动spider站点http://soft.yesky.com的内容。

 注意:spider网站的过程非常缓慢,如果该网站内容太多,这个过程可能会延续几小时到一天,但你不必担心脚本运行超时,因为系统的timeout时间被设置为最长达48小时。在这个过程中,你也可以中断spider程序的运行,并能重新启动spider程序运行未spider完的网站。需要注意的是若在这个过程中你不小心关闭了spider运行页面,但事实上系统并没有停止spider,仍在消耗系统资源。你可以重新打开spider页面,点击停止spider链接方可释放系统资源。

用PHPdig打造属于你自己的Google[图文教程]
(图3)

 5. 利用PHPdig进行搜索

 经过一段时间后,spider程序运行的结果是将http://soft.yesky.com网站上的信息抓取到服务器数据库中,主要是对方内容的title信息、关键词信息和页面地址信息等,此时,你就可以通过访问search.php进行搜索了。

用PHPdig打造属于你自己的Google[图文教程]
(图4)

 你可以选择搜索结果显示的条数,可以选择模糊查找还是精确查找,另外你可以选择针对某个站点的搜索,默认情况下搜索已经被spider的所有站点。

用PHPdig打造属于你自己的Google[图文教程]
(图5)

 上图是搜索“QQ2006”的搜索结果页面。

 6. 存在的问题

 由于PHPdig的语言设置问题、系统的分词问题以及MYSQL数据库的字符处理问题等,PHPdig对汉语词汇的搜索还存在许多不确定因素,这些东西都有待我们进一步去解决和完善,欢迎广大对此感兴趣的朋友们到网页陶吧-PHPdig主题社区进行探讨。

PHP 相关文章推荐
php错误提示failed to open stream: HTTP request failed!的完美解决方法
Jun 06 PHP
解析php类的注册与自动加载
Jul 05 PHP
PHP引用(&)各种使用方法实例详解
Mar 20 PHP
php实现telnet功能示例
Apr 08 PHP
PHP文件缓存类示例分享
Jan 30 PHP
PHP 正则表达式小结
Feb 12 PHP
PHP中判断文件存在使用is_file还是file_exists?
Apr 03 PHP
CI框架扩展系统核心类的方法分析
May 23 PHP
详解EventDispatcher事件分发组件
Dec 25 PHP
PHP在linux上执行外部命令的方法
Feb 06 PHP
php生成word并下载代码实例
Mar 15 PHP
PHP实现本地图片转base64格式并上传
May 29 PHP
php中的一个中文字符串截取函数
Feb 14 #PHP
PHP音乐采集(部分代码)
Feb 14 #PHP
一个数据采集类
Feb 14 #PHP
phpmyadmin中配置文件现在需要绝密的短语密码的解决方法
Feb 11 #PHP
增加反向链接的101个方法 站长推荐
Jan 31 #PHP
Discuz!5的PHP代码高亮显示插件(黑暗中的舞者更新)
Jan 29 #PHP
解决控件遮挡问题:关于有窗口元素和无窗口元素
Jan 28 #PHP
You might like
使用Limit参数优化MySQL查询的方法
2008/11/12 PHP
PHP 遍历文件实现代码
2011/05/04 PHP
php实现与erlang的二进制通讯实例解析
2014/07/23 PHP
phpExcel中文帮助手册之常用功能指南
2014/08/18 PHP
javascript实现仿银行密码输入框效果的代码
2007/12/13 Javascript
JavaScript 序列化对象实现代码
2009/12/18 Javascript
javascript中验证大写字母、数字和中文
2014/01/15 Javascript
jQuery实现跟随鼠标运动图层效果的方法
2015/02/02 Javascript
jQuery 出现Cannot read property ‘msie’ of undefined错误的解决方法
2016/11/23 Javascript
webpack配置的最佳实践分享
2017/04/21 Javascript
nodejs语言实现验证码生成功能的示例代码
2019/10/13 NodeJs
JQuery Ajax如何实现注册检测用户名
2020/09/25 jQuery
详解微信小程序「渲染层网络层错误」的解决方法
2021/01/06 Javascript
在Python中使用异步Socket编程性能测试
2014/06/25 Python
Python中subprocess模块用法实例详解
2015/05/20 Python
python实现的文件同步服务器实例
2015/06/02 Python
从局部变量和全局变量开始全面解析Python中变量的作用域
2016/06/16 Python
python3+PyQt5实现自定义分数滑块部件
2018/04/24 Python
Python 一行代码能实现丧心病狂的功能
2020/01/18 Python
使用 Python 处理3万多条数据只要几秒钟
2020/01/19 Python
Python多线程多进程实例对比解析
2020/03/12 Python
Pycharm的Available Packages为空的解决方法
2020/09/18 Python
Html5实现如何在两个div元素之间拖放图像
2013/03/29 HTML / CSS
DataReader和DataSet的异同
2014/12/31 面试题
2013届毕业生求职信范文
2013/11/20 职场文书
教师实习自我鉴定
2013/12/13 职场文书
团支部建设方案
2014/05/02 职场文书
优秀德育工作者事迹材料
2014/05/07 职场文书
讲文明树新风演讲稿
2014/05/12 职场文书
普通党员对照检查材料
2014/08/28 职场文书
食堂采购员岗位职责
2015/04/03 职场文书
五一晚会主持词
2015/07/01 职场文书
幽默口才训练经典句子(48句)
2019/08/19 职场文书
MySQL令人咋舌的隐式转换
2021/04/05 MySQL
Python OpenCV 图像平移的实现示例
2021/06/04 Python
Python学习之os包使用教程详解
2022/03/21 Python