首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络技术 > 网络基础 >

小弟我的毕业设计想做一个站内搜索 请大家给些意见和建议吧

2012-03-14 
我的毕业设计想做一个站内搜索 请大家给些意见和建议吧首先 我对搜索什么都不懂,昨天刚开始看我想把站内搜

我的毕业设计想做一个站内搜索 请大家给些意见和建议吧
首先 我对搜索什么都不懂,昨天刚开始看

我想把站内搜索做成chorme浏览器的add-on。 用java做,这样没有站内搜索的网页也可以用了。主要实现关键字检索,自定义检索深度

查了一下开源包, 有很多,我不知道该用哪个好了。

想请教大家: 
1 我的想法能否实现,
2 应该用哪个包来实现,
3 如何下手? 谢谢

新手 ,越详细越好,再次谢谢了。




[解决办法]
1.可以用lucene,lucene现在已经发展到1.9.1版了,相当稳定,网上中英文资源很丰富,甚至关于这个工具包的书(lucene in action)都有了.如果只是做站内搜索,可以直接从读数据库中读数据,调用lucene做索引.再写一个前台查询界面,调用lucene查询索引并在前台显示结果.

想一点程序都不写的话可以参考下面2个方案

2.用heritrix + nutchwax,heritrix也是一个很成熟的crawler,他将网页下载并压缩保存到arc格式的文件中,一个arc文件一般100兆左右,heritrix不解析提取网页的内容,nutchwax负责解析网页,提取内容并建索引,nutchwax提供检索界面.缺点是nutchwax的安装很麻烦.

3.用nutch,一个超强的开源软件,作者就是lucene的作者,该软件的目标是做到和Google一样强大,nutch的很多分布式实现的思想来源于Google,目前已实现分布式crawler,和分布式检索,已经有人用他抓了几亿的网页,nutch功能包括了下载网页,解析网页,计算网页重要度,建索引,前台搜索等一个搜索引擎需要的绝大部分功能,用他来做站内搜索也很方便.该软件支持中文. nutch目前稳定的版本是0.7.2 用该软件的缺点是网上的中文资料不多.你要习惯看英文资料

信息来源:
http://zhidao.baidu.com/question/5762713.html
[解决办法]
1、不明白你的担心速度慢指什么,就1000个网页,无论是索引还是查询都不会很慢的啊(哪怕拿db去查)
2、你所说的real-time search在搜索引擎里面并不是像你说的那样,边去做parser边索引、查询,它的真正含义是,当前系统提供搜索服务(前端用户可以查询获取想要的结果),同时你有增加新的数据(网页),这时候能够同步更新索引,让用户也能马上查询到最新的内容,这个才是real-time search,不过一般来说有一定延迟的(与你应用需求有关、与服务器配置有公关)
3、能够查询都是因为在查询之前,对数据进行了索引,查询的时候直接从索引库里面检索,速度很快的
4、推荐资源:
(1)Lucene不过是一个search library,你要在此基础上可能做很多工作,例如提供用户界面等等,不过Lucene的性能是不要怀疑的,支持TB级索引数据是没问题的,而且速度很快
(2)你可以使用Solr来搭建,它是基于Lucene实现的一个开源的查询服务器框架,可以很好地进行索引的更新,以及查询结果的表现(json、xml)都很容易被前端处理展示
(3)你要是用个Nutch,可能学习成本高一些,它是基于Hadoop开源分布式框架(HDFS和MapReduce),数据量小于TB级没有必要使用它
(4)爬虫的选择就多了,Java的Heritrix等、C的larbin爬虫、python的scrapy、都是开源的
(5)search library还有个选择,就是C++写的Xapian开源框架,这个也不错,可以尝试一下

热点排行