Net分词搜索程序说明书_第1页
Net分词搜索程序说明书_第2页
Net分词搜索程序说明书_第3页
Net分词搜索程序说明书_第4页
Net分词搜索程序说明书_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

.Net分词搜索程序说明书源码及文档下载地址:/code/ShootSearchShootSearch(开发代号:SpiderMan)说明书文件状态:[√]草稿[]正式发布[]正在修改文件标识:ShootSunStudio-SpiderMan-20070815当前版本:0.1作者:YinJun完成日期:未完成ShootSunStudioShootSunStudio射日工作室support@版本历史版本/状态作者参与者起止日期备注0.1尹君无2007/8/152006/8/17目录TOC\o"1-3"\h\z0.文档介绍 40.1文档目的 40.2文档范围 40.3读者对象 40.4参考文档 51.产品介绍 62.产品面向的用户群体 63.产品应当遵循的标准或规范 64.ShootSearch命名空间 65.ShootSearch的使用 75.1站内搜索 75.2远程采集 9

0.文档介绍本文档主要介绍有关ShootSearch(开发代号:SpiderMan)的各组件类库和如何使用ShootSearch来进行数据的采集和搜索。0.1文档目的因为ShootSearch(开发代号:SpiderMan)并没有一个比较系统的介绍,所以为了方便大家使用也为了规范以后的开发,特编写此文档。因为0.2版在架构上出了点问题,所以0.2版不再做更多的更新了,我现在的工作主要放在0.3版的设计上了。目前已经确定的改进如下:已处理队列不再使用.Net自带的Hashtable,而改用BloomFilter;未处理队列将变成两个:A和B,A保持一定数量的Url,当A超出时向B内增加,当B满后写入磁盘…这样就可以保证处理更多的Url;Spider下载/Mirror处理两个模块将更好的配合,以便同时处理多个网站,这些网站可以使用相同规则,也可以对应不同的处理规则;改进索引线程的控制,使其更加灵活处理规则的改进,内存中不再创建DataTable,而是直接采用XmlDocument对象,这样就能更加灵活的进行处理;传递对象—IndexItem的属性将不限于Url,Title,Body等,可以使用自定义的属性;0.2文档范围目前ShootSearch版本为0.2版,并没有使用Ndoc之类的工具来生成完整的类库说明之类的说明性文档,同时因为ShootSearch正在开发中,所以并不推荐最终用户的使用,因此在说明时可能会使用一些比较专业的词汇,但文档就此一份,不太好区分什么开发用户,最终用户之类的,有些地方的说明可能会比较的详细以致让部分用户觉得有些烦琐。0.3读者对象.Net下面的搜索爱好者,程序开发人员,系统设计人员,最终用户…0.4参考文档1.产品介绍ShootSearch的研发代号为:SpiderMan。你可以理解为蜘蛛侠,而我更愿意认为是管理蜘蛛的人:-)。因为ShootSearch的最初开发目的是希望能够对HTTP,FTP,本地磁盘和网络邻居磁盘四种资源进行检索。每种资源对应一种蜘蛛程序,而管理这些个蜘蛛的就可以成为管理蜘蛛的人了。用户可以设定要检索的网址,FTP服务器或是本地/网络磁盘路径,然后由ShootSearch来为这些资源做索引,方便搜索。2.产品面向的用户群体目前ShootSearch还正在开发中,因此用户主要是一些开源软件的爱好者,有初级搜索需求的用户。3.产品应当遵循的标准或规范ShootSearch是基于Lucene.Net(以前叫DotLucene)的开源搜索引擎,采用C#编码,源码开放,遵守GPL协议。有关协议的英文版请参考:/copyleft/gpl.html中文版详细情况请参考:/about/gpl/4.ShootSearch命名空间ShootSearch命名空间如下所示:目录/程序名类型用途说明ShootSearch.Spider类库蜘蛛程序ShootSearch.Mirror类库镜像处理程序ShootSearch.Indexer类库索引制作程序ShootSearch.Logger类库日志记录程序ShootSearch.IFilter类库文件解析器HTML,Word,Excel…微软官方提供ShootSearch.Plugin类库插件接口ShootSearch.Plugin.RTF类库RTF文件解析插件ShootSearch.Segment类库中文分词程序ShootSearch.Common类库公共函数库ShootSearch.Searcher类库公共搜索程序ShootSearch.Searcher.WebWeb应用程序Web搜索程序ShootSearch.Searcher.WindowsWindows应用程序Windows搜索程序ShootSearch.Spider.ConsoleWindows应用程序蜘蛛程序控制台ShootSearch.Mirror.TesterWindows应用程序镜像处理程序ShootSearch.Indexer.TesterWindows应用程序索引测试有关这一部分的详细说明请参考一下ShootSearchNameSpaceList.html那是使用NDoc自动生成的文档,但是我在编译MSDN风格时总是出错,所以就随便挑了一个可以编译通过的编译了…其中索引,镜像处理以及蜘蛛的配置参数说明可以从中详细的进行查看。公共函数库也有详细的说明。5.ShootSearch的使用下面详细讲解一下如何使用。目前ShootSearch的应用应该主要分为两类:站内搜索,局域网内搜索和远程采集。5.1站内搜索可能很多网站都在采用百度或者Google的站内搜索来进行自己网站的站内搜索。首先要明确,站内搜索是为了方便浏览网站的用户更好的检索到所需要的资料,但是使用别人的站内搜索却存在着很多的问题。首先明确网站一般分为两大类:靠流量吃饭的和不靠流量吃饭的。对于考流量吃饭的网站而言,让用户使用百度来检索主要是为了减轻一下自己数据库的访问压力,也是为了获得更好的检索效果,但是当用户使用百度或Google来检索时无疑也悄悄地把流量带给了百度和Google。下面看看对于不靠流量吃饭的网站,尤其是一些制造厂商和在线销售的公司,网站目的很明确:展示产品,销售产品。其实当用户使用搜索引擎进行站内搜索时,很多人都不知道,搜索引擎跟我们开了一个大玩笑。我们都知道站内检索的语法如下:site:[网址][关键字],一般的搜索引擎都支持。下面我举个例子,大家就明白这个玩笑是什么了。比如:这个网站,这是一家在线销售PDA,智能电话,GPS等数码设备的网站,当然他们并没有使用百度或是Google的站内检索,但是他们的搜索功能不是很强,还可以说是很简单。假想一下,如果他们提供了百度的站内检索,我们来模拟一下使用百度来检索我们想要的信息:打开,在搜索框中输入“site:多普达838”(不包括引号,假想用户想查询一下多普达的手机),点击“百度一下”按钮,看看我们的搜索结果,如下图:咋一看没有什么不对的,因为第一个搜索结果似乎就是我们想要的,但是请注意观察右侧!那是我的竞争对手的广告!天哪,假如用户不是锁定了我的网站来购买手机,那么百度的站内搜索就把我的用户带给了我的竞争对手!(顺便说一句,Google站内检索好像没有广告)现在大家明白了,不管你是什么样的网站,如果你使用了百度的站内搜索,那可就小心了,因为你的竞争对手可是随时虎视眈眈着你呢~就目前而言,ShootSearch站内搜索还不是很强大,因为在更新功能上还不是很完善,需要手动调整一些配置。另外只有支持动态页面(jsp,.net1.1和.net2.0的主机才支持检索功能)。下面就来看一下如何进行的站内检索。运行ShootSearch.Spider.Console.exe,点击设定地址,删除原来的Url,添加,其余默认,点击“增加”按钮,然后点击“保存”退回主界面,然后点击“常规设置”,把“启用索引”的对钩选上,其余两个不选,在“忽略的URL关键字”填入“rss|.gif|.png|.jpg|.js”;切换到“下载设置”,选中“下载后重命名”,去掉“只下载静态化的Url”的对钩;切换到“索引设置”,选中“如果索引存在就自动更新“,然后点击”保存“按钮退回主界面。点击”开始运行“就可以了。注意检索完成后需要点击一下“保存队列“按钮,在下次更新时需要手动把首页的URL,比如从Processed.txt中删除,手动添加到UnProcessed.txt中。然后点击”加载继续“即可完成一次更新。5.2远程采集因为目前ShootSearch只能处理单个网站的远程采集,所以这里只说最关键的,“处理规则设置“和”文件名过滤器“。处理规则包括3种:提取规则,移除规则和替换规则。提取规则一定要有一个输出模板,在这里使用了StringTemplate.Net这个组件。模板中两个美元符号之间为关键字:$关键字$。下面以采集CSDN的Blog为例:要采集的首页地址为:/shootsoft首先要编写一个输出的模板,我们这里以输出xml文件为例,也是输出html等任何文本形式,适当的添加代码也可以输出到数据库中。<?xmlversion="1.0"encoding="utf-8"?><<?xmlversion="1.0"encoding="utf-8"?><csdnblog><title>$Title$</title><body><![CDATA[$Body$]]></body></csdnblog>csdnblog.tp需要保存在Templates/目录下csdn的Blog采集不需要移除和替换规则,所以在设置时记得不要启用这两种规则,只需要提取规则就可以。提取规则的xml名称我们可以定义为:SmartGet_csdnblog.xml,现在先打开一篇Blog列表页和内容页,比如:/shootsoft/archive/2007/03.aspx/shootsoft/archive/2007/02/12/1508321.aspx观察一下源码,可以看出内容页一定有个“收藏到我的网摘“的字样,ShootSearch目前提供了两种方式来进行内容提取的过滤,一个是文件名过滤,另一个就是内容关键字过滤。\S*\d{4}\\\d{2}\\\d{2}\\\S*.htm因为下载后的文件如果按照原目录结构的话内容页的路径正则表达式就是(重命名成.htm了)\S*\d{4}\\\d{2}\\\d{2}\\\S*.htm可以把这个正则表达式添加到“文件名过滤器“中。<?xmlversion="1.0"encoding="utf-8"?><?xmlversion="1.0"encoding="utf-8"?><ShootSearch><GetTemplateName="csdnblog"><ItemGetType="Key"Name="Key"Type="1"><Expression>收藏到我的网摘</Expression></Item><ItemGetType="SmartGet"Name="Body"Type="3"MinSize="100"><Start><![CDATA[<divclass="postText">]]></Start><End><![CDATA[<br><br><pid="TBPingURL">]]></End></Item><ItemGetType="SmartGet"Name="Title"Type="3"><Start><![CDATA[border='0'width='15'height='13'/> ]]></Start><End><![CDATA[</a>]]></End><Expression></Expression></Item><ItemGetType="SmartGet"Name="Url"Type="3"><Start><![CDATA[<divclass="postTitle"> <ahref="]]></Start><End><![CDATA[">]]></End><Expression>href</Expression></Item></Get></ShootSearch>SmartGet函数是用于提取内容的一个函数,此外还有XMLGet,Regex两种方式。其中的Name是该条内容的提取名称,有很多网站比如博客园的()他的内容提取有多个,因此Name是可以重复的,程序在处理时会挨个尝试相同Name的规则,当某个规则提取的内容不为空时,后面相同Name的规则就不再做尝试了。Type属性只用于SmartGet和XMLGet两种,这是一个枚举,请参考ShootSearch.Mirror命名空间下的SmartGetType枚举的说明。MinSize属性和MaxSize属性目前只用于Body内容的过滤。其他的配置请参考下图:下面点击“保存”按钮,返回主界面后点击“开始运行”按钮。程序便会启动

温馨提示

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

评论

0/150

提交评论