用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 curl常见错误:SSL错误、bool(false)
Dec 28 PHP
php shell超强免杀、减少体积工具实现代码
Oct 16 PHP
基于php iconv函数的使用详解
Jun 09 PHP
php中mysql连接和基本操作代码(快速测试使用,简单方便)
Apr 25 PHP
Linux下创建nginx脚本-start、stop、reload…
Aug 03 PHP
PHP遍历XML文档所有节点的方法
Mar 12 PHP
php常用表单验证类用法实例
Jun 18 PHP
屏蔽PHP默认设置中的Notice警告的方法
May 20 PHP
Json_decode 解析json字符串为NULL的解决方法(必看)
Feb 17 PHP
PHP实现限制IP访问的方法
Apr 20 PHP
Laravel5中Cookie的使用详解
May 03 PHP
PHP面向对象程序设计之对象克隆clone和魔术方法__clone()用法分析
Jun 12 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
一个PHP日历程序
2006/12/06 PHP
JQuery中的$.getJSON 使用说明
2011/03/10 Javascript
window.requestAnimationFrame是什么意思,怎么用
2013/01/13 Javascript
基于javascipt-dom编程 table对象的使用
2013/04/22 Javascript
JS获取农历日期具体实例
2013/11/14 Javascript
jquery解析xml字符串简单示例
2014/04/11 Javascript
jquery uploadify 在FF下无效的解决办法
2014/09/26 Javascript
分享28款免费实用的 JQuery 图片和内容滑块插件
2014/12/15 Javascript
javascript实现2016新年版日历
2016/01/25 Javascript
JS使用JSON作为参数实例分析
2016/06/23 Javascript
jQuery焦点图左右转换效果
2016/12/12 Javascript
jQuery插件HighCharts实现2D柱状图、折线图的组合多轴图效果示例【附demo源码下载】
2017/03/09 Javascript
详解vue中computed 和 watch的异同
2017/06/30 Javascript
Node.js pipe实现源码解析
2017/08/12 Javascript
浅谈Javascript中的对象和继承
2019/04/19 Javascript
vue 通过 Prop 向子组件传递数据的实现方法
2020/10/30 Javascript
python访问sqlserver示例
2014/02/10 Python
Python标准库之随机数 (math包、random包)介绍
2014/11/25 Python
详解Python中的from..import绝对导入语句
2016/06/21 Python
python实现斐波那契数列的方法示例
2017/01/12 Python
使用pytorch进行图像的顺序读取方法
2018/07/27 Python
pyqt5之将textBrowser的内容写入txt文档的方法
2019/06/21 Python
基于Python检测动态物体颜色过程解析
2019/12/04 Python
Python如何获取文件指定行的内容
2020/05/27 Python
CSS3中各种颜色属性的使用教程
2016/05/17 HTML / CSS
HTML5实现获取地理位置信息并定位功能
2015/04/25 HTML / CSS
美国唇部护理专家:Sara Happ
2019/06/19 全球购物
衰败城市英国官网:Urban Decay英国
2020/04/29 全球购物
有多年工作经验的自我评价
2014/03/02 职场文书
大学学生会竞选演讲稿
2014/04/25 职场文书
本科生求职信
2014/06/17 职场文书
合作经营协议书范本
2014/09/16 职场文书
十一国庆节“向国旗敬礼”主题班会活动方案
2014/09/27 职场文书
团委工作总结2015
2015/04/02 职场文书
2015年保险业务员工作总结
2015/05/27 职场文书
如何利用python实现列表嵌套字典取值
2022/06/10 Python