[转]FTP搜索引擎的设计与实现
FTP搜索引擎的设计与实现
|
|
张运凯 刘宏忠 郭宏刚
|
|
摘要:FTP是因特网最主要的服务之一,FTP搜索引擎为人们使用FTP服务提供了很大的方便。本文分析和设计了一个基于WEB的FTP搜索引擎,并在PHP+Mysql环境下给出了编程实现方法。 关键词:FTP;搜索引擎;PHP;Mysql; 引言 FTP是因特网最主要的服务之一,在FTP服务器上保存有大量的各种各样的共享软件、技术资料和多媒体数据等文件。因为每个FTP服务器都有若干个目录,其目录和文件结构比较复杂,要在FTP服务器上找到自己需要的文件不是一件容易的事情,要在多个FTP服务器上查找文件更是困难。基于WWW的FTP搜索引擎可以很好的解决上述问题。目前,国内外有很多FTP搜索引擎,国内较著名的有北大天网、百合谷搜索和FTP星空搜索等。为了更好的为我校校园用户和省主节点用户提供服务,我们设计了自己的FTP服务器搜索引擎。 1.FTP搜索引擎的结构 FTP搜索引擎由数据采集、数据查询和站点维护等模块组成。实现一个FTP搜索引擎,首先要收集各个FTP站点上的文件信息,并把这些信息存储到数据库中;然后给用户提供一个查询界面,以收取用户要查询的信息,把这些查询信息转化为数据库语言,并进行数据库查询,把查询结果以友好的界面显示给用户;搜索引擎建立好以后,为了使数据库数据与FTP站点的数据保持一致,需要更新FTP站点的文件信息,添加新的FTP站点等管理和维护。其结构如下图所示。 我们在设计FTP搜索引擎时,采用Linux操作系统Redhat8.0,WWW服务器采用Apache,数据库采用MySQL,编程语言采用PHP。 2. 数据库结构和设置 2.1文件信息分析 在FTP站点上,根目录下的目录中又有许多文件夹和文件,每一个文件的信息包括文件名,文件地址,文件大小,日期,类型等。对应这些文件信息,在文件数据库中设置相应的字段,用来纪录这些信息,用字段name存储文件名,一般不超过255个字符,设置为varchar类型,长度为255,host表示FTP网站的名称,说明是哪一个网站上的文件,address字段准确给出文件的URL地址,由于有些文件URL比较长,把address字段类型设置为longtext,有了这些字段,就可以在网络中找到此文件的位置。另外,还需要纪录下文件的大小,时间,日期,以供用户分辨选择他们所要的文件。最后,查询时对文件名字段的访问比较频繁,把它设置成Index字段,这样可以提高查询速度。 2.2 FTP站点信息分析 一个FTP站点通常包含服务器名称,用户名,和密码。对应FTP站点的信息,数据字段设置如下:设置站点名、站点IP地址、用户名、用户密码等几个字段,站点名字段类型为vchar,长度为60,IP地址vchar类型,长度为50,用户名vchar类型,长度50,密码设置为password类型,长度为60。另外,FTP站点名也是使用较为频繁的数据,把它设置为Index字段。 2.3数据库结构设置 基于以上分析,设置数据库如下:在file_address数据库中有两个数据表,一个为fileaddress数据表,另一个为ftpserver数据表,其中fileaddress数据表用于记录ftp站点的文件信息,ftpserver数据表用于记录各个ftp站点的信息。 3. 数据采集 要构建搜索引擎,首先要收集各个FTP站点的文件信息,记录到数据库,用于提供搜索。因特网中有许多的FTP站点,要收集某个FTP站点的信息时,从数据表中读出站点信息,然后登陆到此站点,多数FTP服务器都开辟有一个公共访问区,称为"匿名FTP",对公众提供免费的文件信息服务,一般用户名为Anonymous,密码为一个Email地址。数据采集程序用此用户名和密码登陆站点,然后对站点所有目录进行采集,读取每个目录下的文件信息,在收到文件信息之后,对其进行分析,将文件信息存储到相应的数据表字段中。完成此站点的数据采集之后,再读取另外一个FTP站点的信息,进行文件信息采集。如此循环,采集所有已知FTP站点的文件信息。 首先连接到此ftp站点,并用相应的用户名和密码登陆,此时,当前目录一般为根目录,有的并不是,所以要先取得当前目录,然后从此目录开始扫描此站点的文件信息,如果此目录为空(只有两个文件:.和..),则此站点没有文件,退出登陆,如果不为空,则判断每个文件是否是目录,如果是,则改变当前目录到此子目录下,扫描此子目录并判断,如果还有子目录,则继续转到其下扫描。下面是采集数据的程序。 get_ftp_info() get_path_info()是采集程序最主要函数,该函数采用递归调用的方法依次处理各个目录和文件,把目录和文件信息写入数据库。下面是该函数的实现代码。 get_path_info() get_path_info($ftpserver,$ftplink,$ftp_dir,$sqlmasterlink); 4. 数据查询 数据查询主要包括查询页面的设计、查询程序的编写和查询结果的处理及部分。查询页面由Web服务器提供查询界面,用于收集所要查找的文件信息,用户浏览到此Web页面,填写并提交表单,表单中包含有用户所要查找文件的信息,如文件名,大小,等,表单提交给Web服务器之后,由查询程序进行分析,生成查询语句,并提交给数据库服务器进行查询,查询结果由查询程序进行分析处理,查询结果以超链接形式生成Web页面,提供给用户浏览。 用户输入的信息转化为数据库查询语言,再进行查询。可以用Mysql数据库查询语言中给出的正则表达式来表示。其常用表示方法如下: a.特殊字符"^": 用来匹配以指定字符串开头的字符串。例如:"^hello" :这个模式与字符串"hello,PHP world!"匹配,但是与"Say hello to you"不匹配。 b.特殊字符"$": 用来匹配以指定字符串结尾的字符串。例如: "you$" :这个模式与"How are you"匹配,与"your"不匹配。 c.当特殊字符"^"和"$"同时使用时,表示精确匹配。例如: "^hello$" :这个模式只匹配字符串"hello"。 在查找文件时,设置表示用户输入的文件名的变量为$filename,那么,可以生成如下的查询语句进行查询:
在采集到数据库的文件信息中,包括了文件名、大小、日期和文件的网络地址。查询结果可由数据库中的网落地址可生成文件的URL信息,表示文件的下载地址。代码结构为: 文件名文件大小和日期 5. 管理与维护 搜索引擎建立好以后,为了使数据库数据与FTP站点的数据保持一致,需要对站点进行管理和维护。在我们的设计中,管理和维护功能包括增加FTP站点、显示及删除FTP站点、更改FTP站点等功能。为了实现站点文件信息自动更新的功能,我们把更新FTP站点文件信息的程序(addallinfo.php)设置成系统计划任务,例如可以设置成每天运行一次。 6.结束语 我们设计的FTP搜索引擎已经在网站上使用,为用户提供了很好的服务。FTP搜索引擎的技术发展很快,在查询方式、检索结果处理和分类检索等方面有了很大的改进。我们将在这几方面继续完善我们的系统。 参考文献: 1. 龙浩等,《PHP语言进阶和高级应用》.北京:清华大学出版社出版, 年。 |
来源:http://www.eol.cn/20031023/3093295.shtml
[转]FTP搜索引擎的设计与实现相关推荐
- [转]FTP搜索引擎的设计与实现 1
FTP搜索引擎的设计与实现 张运凯 刘宏忠 郭宏刚 摘要:FTP是因特网最主要的服务之一,FTP搜索引擎为人们使用FTP服务提供了很大的方便.本文分析和设计了一个基于WEB的FTP搜索引擎,并在P ...
- 转 FTP搜索引擎的设计与实现(优化版)
width="336" height="280" src="http://www.zealware.com/csdnblog336280.html&q ...
- FTP搜索引擎开发文档(任务概述与需求部分)
2.任务概述 2.1目标 本次开发任务的目标是设计出一款FTP搜索引擎软件,以精简友好的界面.方便的操作为用户提供一种信息搜索的快速定位的功能,特别是为局域网用户提供更有针对性的.更方便的资源,从而提 ...
- 用C#实现FTP搜索引擎
晚辈最近用C#写了一个教育网FTP搜索引擎,希望能得到高手的指点. 网址:http://soso.ccnu.com.cn http://it.ccnu.edu.cn/soso 部分代码: u ...
- .net 2.0 下的FTP搜索引擎实现
用c#写的ftp 搜索引擎,该程序是采用WFS算法, 程序如下: 主程序: using System; using System.Net; using System.IO; using Sys ...
- SF超高速FTP搜索引擎(哈尔滨工业大学)
SF超高速FTP搜索引擎是全国新一代超高速FTP全站搜索引擎之一,索引速度远高于同类产品,在两千万候选项中查询两百万结果只在毫秒量级即可完成.并且支持多种排序方式.站点快照等贴近用户使用的功能. 本搜 ...
- 在Linux系统下建立强大的FTP搜索引擎
Linux正大行其道,不少朋友相信已经用它架设过各种服务,什么Web.FTP.BBS等等等啦,这次,我向大家介绍另外一个在linux下运行的服务器软件----NoseyParker,一个强大的FTP搜 ...
- 搜索引擎的设计与实现
经过对搜索引擎的研究同时与Lucene自身的特性相结合,搜索引擎的设计与实现需要实现的功能阐述如下: (1)支持桌面文件搜索,格式包括txt.doc.xls和ppt; (2)支持分词查询 (3)支持全 ...
- 基于java的搜索引擎的设计与实现
经过对搜索引擎的研究同时与Lucene自身的特性相结合,搜索引擎的设计与实现需要实现的功能阐述如下: (1)支持桌面文件搜索,格式包括txt.doc.xls和ppt; (2)支持分词查询 (3)支持全 ...
- 基于Java、JSP中文分词的搜索引擎的设计与实现
技术:Java.JSP等 摘要: 网络中的资源非常丰富,但是如何有效的搜索信息却是一件困难的事情.建立搜索引擎就是解决这个问题的最好方法.本文首先详细介绍了基于英特网的搜索引擎的系统结构,然后从网络机 ...
最新文章
- (七)JS基础知识四(搞定异步)【三座大山之三,必考!!!】
- 回文数、罗马数转整数、整数反转
- 安兔兔跑分可信吗_安兔兔安卓手机跑分性能榜公布:第一名实至名归?
- 4怎么放大字体_win8.1系统如何放大所有字体?
- ENC28J60 驱动开发要点
- win7下的python2.7和pip的环境安装
- python爬取抖音评论_爬取抖音299w用户数据后的分析
- 金电容(法拉电容)与可充放电池的相关知识
- java代码读取txt文件_java读取txt文件代码片段
- android 微信登陆功能,Android 实现微信登录详解
- 什么叫做云计算?云计算基础学习路线
- thingjs这个3D js库怎么样?
- winform打印html文件,c# 如何实现web打印插件
- 作为一名31岁的软件测试员,工作3年,月薪不到2W,担心被应届生取代
- 抖音网页直播弹幕 protobuf 推导
- 什么是AEC-Q200?AEC-Q200的认证对象和测试项目
- 6.11 通过文件描述符来获取信号
- 薛定谔 | 诱导契合对接(结合位点柔性)
- 【Java】求最大公约数
- css控制英文字母的大小写