局域网FTP搜索引擎的建立_第1页
局域网FTP搜索引擎的建立_第2页
局域网FTP搜索引擎的建立_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、局域网FTP搜索引擎的建立    摘  要  FTP服务是网络服务的一种应用广泛的文件传输形式,本文拟构建一个基于Web的FTP主机的文件搜索系统,能够以Web形式轻松的检索FTP上的文件,并且可以直观的以Web模式模拟FTP主机的文件结构。    关键词  搜索引擎;FTP;Web  1  背景    当前,计算机网络已经越来越普及,各个单位也已经逐步建立自己的FTP(File Transfer Protocol)服务器,用来管理存储对于自己单

2、位内部共享的一些文件或者对外共享的一些文件。随着被FTP管理的文件数量的不断增长,达到上万、上百万,甚至更多的时候,如何在如此庞大数据里边更快捷的找到自己所需的文件,将成为一个很重要的问题。    目前出现了一些FTP搜索引擎,可以用来搜索整个互联网内处于匿名访问的FTP上的文件信息,而需要权限才能访问的FTP则无法直接建立索引,因此不能达到搜索效果。本文拟构建的FTP搜索引擎是针对单位内部,局域网内的一个或者几个FTP服务器建立的;使内部用户直接可以看到FTP上的目录结构,并可以准确的搜索文件位置,然后下载浏览,达到检索高效、准确。2  拟构建系统之模

3、型    系统构建网络拓扑模型如图1所示。    图1 系统拓扑模型     根据拓扑结构,内部网络部署若干台FTP服务器,根据需要,在每台需要被查询的FTP服务器上,建立扫描文件结构发生变化的爬虫程序,并在内部网络建立FTP文件索引数据库服务器,用来存放FTP服务器上爬虫程序获取的索引数据,另外还要建立Web服务器,用来做Web查询。3 系统模式分析    本系统采用两个模块构建,分别是部署于FTP服务器的爬虫程序和部署于Web服务器的索引查询引擎。 &

4、#160;  部署于FTP服务器的爬虫是一用来监控FTP文件结构变化的程序,它用来监视FTP服务器的变化,当FTP服务器有新的文件上传或者有文件被删除或者文件位置发生变化的时候,爬虫程序会立即捕捉到此变化,然后将变化信息响应到建立索引的数据库服务器。    部署于Web服务器的查询引擎是主要用来做查询服务,以及针对用户输入的查询关键字做模糊处理,直接以模糊方式查询,当搜索到结果以后,显示时候将文件所处FTP位置显示,同时将对应的超级连接做在上边,可以方便直接下载。    在访问范围上,拟构建的搜索系统可以供内网和外网同时检索

5、,访问方式 图55组合(条件)查询窗口控件:dw_2 事件(event):ItemchangedScript  of  Itemchangedstring item,status,edit,result,modify_string,cur_string,c,operator1this.accepttext() choose case case'column_name'  item=dw_2.getitemstring(dw_2.getrow() ,'column_name')/根据查询项目改变操作符的显示

6、If item='publishing_date' or item= 'buy_date' then   dw_2.setrow(dw_2.getrow()   dw_2.setitem(row,'content','')   dw_2 .setvalue('operator',1,'等于t=')   dw_2.setvalue('operator',2,'不等于t<>')&#

7、160;  dw_2. setvalue('operator',3,'小于t<')   dw_2.setvalue('operator',4,'大于t>')   dw_2. SetValue('operator', 5, '小于等于t<=')   dw_2.SetValue('operator', 6, '大于等于t>= ')   Status = dw_

8、2.GetValue('operator',4)else   dw_2.setrow(dw_2.getrow()   dw_2. setitem(row,'content','')   dw_2.setvalue('operator',1,'等于t=')   dw_2.setvalue( 'operator',2,'不等于t<>')   dw_2.SetValue('

9、;operator', 3, '包含tlike')       dw_2. SetValue('operator', 4, '不包含tnot')       Status = dw_2.GetValue('operator',4)end if/case 'operator'/防止操作符的显示改变 operator1=dw_2.getitemstring(dw_2.getrow() ,

10、9;operator') choose case operator1  case 'like'  dw_2.setitem(dw_2.getrow() ,'operator','包含')  case 'not'  dw_2.setitem(dw_2.getrow(),'operator','不包含')end chooseend choose控件:pb_2 “插入”事件(event):ClickedScript  of  Clicke

11、dint row,new_row,istring queryrow=dw_2.getrow()/将当前行的行号赋值给变量/允许插入一 行的条件 if (isnull(dw_2.getitemstring(row,'column_name') or &    isnull(dw_2. getitemstring(row,'operator') or &  isnull(dw_2.getitemstring(row,'content') or &  isnull(dw_2.ge

12、titemstring(row,'join') then  query='no' else  query='yes' end if/如 果允许插入,则在当前行后插入一条新记录if query='yes' thennew_row=dw_2.insertrow(0 )/将光标定位在新的一行“资料名称”列dw_2.scrolltorow(new_row)dw_2.setrow(new_row) dw_2.setcolumn(1)/else messagebox('警告',"请输入完整的查询条

13、件",stopsign!)end if控件:pb_3“删除” 事件(event):ClickedScript  of  Clickedint row/如果当前行不为第一行,则允许删除if dw_2.getrow()<>1 then  row=dw_2.getrow ()/将当前行行号赋值给变量  dw_2.deleterow(row)/删除当前行else returnend if控件:pb_4“检索” 事件(event):ClickedScript  of  ClickedLong row_count,rowst

14、ring new_condition,itemstring condition100 ,column_name,operator,content,join,operator1int i/将当前行行号赋值给变量row=dw_2. getrow()/将当前行列名赋值给变量column_name=dw_2.getitemstring(row,'column_name')/将 当前行操作符赋值给变量operator=dw_2.getitemstring(row,'operator')/将当前行查询内容赋 值给变量content=dw_2.getitemstring(ro

15、w,'content')/将当前行连接符赋值给变量(and or) join=dw_2.getitemstring(row,'join')/将查询条件窗口的空行删掉if row<>1 then  if ( isnull(column_name) or &    isnull(operator) or &  isnull(content) then   dw_2. deleterow(row)  end ifend if /将查询条件窗口的总行数赋值给变量r

16、ow_count=dw_2. rowcount()/where后的表达式for i=1 to row_count item=dw_2.getitemstring( i,'column_name') operator1=dw_2.getitemstring(i,'operator') choose case item/查询项 为字符型  case 'name','author','publishing_house','sort','isbn','keeper'

17、,'memo'   if i<> row_count then/查询条件有多行时  choose case operator1   case 'not'/操作符为不 包含    conditioni=dw_2.getitemstring(i,'column_name')+" "+&            

18、60;  dw_2. getitemstring(i,'operator')+" "+"like"+&          "'"+'%'+dw_2.getitemstring( i,'content')+'%'+"'"+dw_2.getitemstring(i,'join')+" "   case 'like'/操作符为包含    conditioni=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论