关于β阶段模块规划
模块如下
数据库管理模块:
含接口
connect(ip,name,key,ipsolr,namesolr,keysolr)
insert(title,date,keywords,url,fileinfo)
注,insert的同时应该也把solr需要的数据发送给solr
注:原程序中还有更多insert操作,但是真的需要都保留吗?个人不认为有必要保留,见下。insert_tag应该直接包含了把tag存入,保 存tag和文件的对应关系,统计词频。
insert也应该直接自动把作者,时间,关键词,保存作为tag,统计词频。与此同时,个人认为原程序中专门把问答网页的问题与答案存储起来,这一点在β版不再需要,因为我们要做的仅仅给六六大顺团队使用,他们使用的功能仅仅是通过能够通过关键词找到我这个文件或者网页url即可,我们若知道其问题和答案中的关键词,便无需知道其具体问题内容和答案内容。同时alpha版本对于数据库的操作还有保存一个网页的相关系,理由同上。alpha版本除此之外仅剩一处向数据库插入数据,向WebPage_tag中插入数据,插入的数据包含了网页和tag之间的映射关系,这在先前insert_tag,insert中均已做到,无需专门设立功能。
bool selectFist100(List<string>curpath,List<string>url,List<Encoding>encoder);
用100因为怕数据太多select出来放不下,返回值判断是否已经select到底了
数据处理模块:
含接口
process(string curpath,string url,Encoding encoder)
内部自己判断文件具体类型,分发给具体类型的模块
暂定下分模块:
doc,html,pdf等模块,内均含同样的接口,doc的xxx为doc,类推
procedure_xxx(string curpath,string url,Encoding encoder)
内部直接调用insert吧找到的数据插回去
分词器模块:
含接口:
datemining()
getAuthor()
getDate
getTitle
getKey
getTag
爬出模块
含接口
run
stop
总管理模块:
也就是main部分,决定爬虫跑不跑,挨个依次拿出数据处理数据放回。
至于语言方面,个人建议沿用alpha的c#较为方便。