java的搜索引擎_一个JAVA搜索引擎的心得

临近困难的降临,才在前三秒去思考如何去解决他,第一秒:慌慌张张的看是什么事情;第二秒:头昏脑涨的稍微尝试一下;第三秒:尝试失败,但心理安慰——我做出过尝试,我付出过努力。(虚伪的满足充实感)

今天上午所有小组都答辩完成,趁着上午剩余的自习时间做下小学期的总结。小学期项目又水过去了,当然,一个事情是要看多方面的,学校方面,缩短了项目制作时间,从原本4周削减到3周,人事方面,感觉大家积极性都不高,我一个人能力也没牛逼到全部完成,毕竟我只是处于愿学状态,并不是渴望学习然后很牛逼那种,所以,为了项目答辩,项目当然是网上找的啦。感觉大家都不关心这实训项目,项目的调试ping通,项目整体框架代码的理解,就连答辩PPT都是我这组长一人完成的,其他组员只需要等着我分工,今天上午第二个组就是我们,在这之前才请教我我PPT上他们负责的代码的理解,明明我前几天都发了PPT,叫他们看懂自己的那一小部分,为什么人不肯费一下提提小拇指的功夫。组长一职又不是我强烈要求的,而是嫌麻烦大家推给我,我想强制锻炼下自己,也没太反对,但是要求我这我那,是不是太过分,太得寸进尺了?人总是下意识的要求别人,却忽视了别人是否有义务为你服务,你付出的努力是什么,自己得以换取利益的价值何在,就算一次两次成功,也不可能一直这样,不平等的交易是不可能长久维持的和活力的。这话我当然不会明说了,权当这里为垃圾场,宣泄一下,说出来,爽多了。

具体博客:http://blog.csdn.net/bloodycuckoo/article/details/50733725,这博客才是讲的真真清楚

我也就说说在这个借鉴(抄袭)的项目,我从中获得方面。为了直观,把效果展示出来。

a4c26d1e5885305701be709a3d33442f.png

项目理解就是三大部分:

1.网络爬虫:将网页数据存储到本地文件Raws文件下的raw_X.txt中,作为一切操作的源数据库。

以下为我理解的爬虫框架所做PPT截图:

a4c26d1e5885305701be709a3d33442f.png

2.数据预处理:

(1)建立索引网页库,数据库表就一张pageindex,字段:id(主键),url,connent,offset,raws.有了这张表,因为raw_x.txt文件中有很多html页面,为了正确html页面通过offset来实现。

(2)建立倒排索引(词——url组),前提建立正排索引(url——词组)。有了倒排索引,你搜索栏输入了关键词,关键词会被解析成

词——url组,这样通过url就能查数据库表,然后通过数据库表获得raw_x的具体网页,解析呈现在前端上。

3.查询

然后说说看源代码收获的一些知识:

1.Properties类

Java中有个比较重要的类Properties(Java.util.Properties),主要用于读取Java的配置文件在,其配置文件常为.properties文件,格式为文本文件,文件的内容的格式是“键=值”的格式,文本注释信息可以用"#"来注释。

2.StringTokenizer分割字符串类

看的时候就奇怪为什么不用split,毕竟自己用过split,网上查询:StringTokenizer已经是deprecated(过时的),因此建议String.Split(),应该是项目写的早的原因用StringTokenizer。

3.项目代码注释充分,代码结构清晰明了

项目大多数代码都有各种类注释,方法注释,具体操作步骤注释。对于第三方人员理解来说也不是很费力,很容易就理解各个类的用法和关系。项目包分的很清晰具体,有util工具包,有专门功能测试的test包,网络爬虫spider包,正排索引包,倒排索引包……

4.中文分词策略,MD5算法

了解了字符串匹配,基于理解,基于统计三种中文分词策略中的字符串匹配的具体实现。了解了MD5校验。

5.强化了正则表达式的能力,数据库操作的能力。现在建数据库建表等操作我还是通过Navicat等工具实现的,以后要自己通过代码实现。

小学期实训还是有些收获的,关键在于你是否想去收获一些知识。不说了,12点下课吃饭了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值