Java网络课程的设计主题之一是制作搜索引擎,简单地记录流程。
功能来自湖南科技大学计算机学院官网新闻http://computer.hnust.edu.cn/a/xueyuanxinwen2/list_52_1.html
主要包括信息爬网、索引、检索实现、web实现
爬取新闻
在计算机学院官网上取新闻链接标题发布日期新闻内容,每条新闻另存为txt文件,以日期命名
登上的txt列表
txt文件的内容
爬行动物的写法很笨拙。 官网上的新闻有几个格式标签不一致,爬的时候一次七八页左右。 在这个过程中出现了很多编码问题。 我建议你先弄清楚乱码的原因。 可以在很多百度上搜索解决方法。 在此请参考下面的https://blog.csdn.net/apple 9005/article/details /
我爬上新闻列表中每一页的源代码,然后利用BeautifulSoup提取每个新闻的链接,下载每个新闻的源代码,最后从中提取所需的内容,并保存为txt文件
建立索引
这一部分不完全清楚,主要使用Lucene索引,但不能直接检索文本文件,因此根据输入的单词进行检索需要使用Lucene编制索引进行分词
要索引的进程目录
建议首先在电脑上运行Lucene的简单实例,自己制作文本文档进行搜索。 操作一次就能理解大概的事情。 在此参见https://blog.csdn.net/u 012463017/article/details/46315367。 这篇文章的过程很详细,而且写文件的内容
实现搜索
分开写用户输入的句子,将分开写的结果保存在一个ArrayList中,使用布尔检索检索包含这些词的文档。 根据语序排序后,将前500个文档按时间月排序并返回结果,以确保搜索结果的时效性
实现检索的程序目录
web实现
在webroot下创建三个jsp文件,以显示首页搜索界面、搜索成功的界面和搜索失败的界面
使用servlet实现了请求管理,但在使用过程中同样出现了中文乱码问题,获取的输入语句乱码出现异常,后来询问后发现编码方式和解码方式不一致。 解决方法:在为get输入值的语句之后添加input=newstring(input.getbytes )、(iso8859-1 )和(UTF-8 )。
程序目录结构(确保导入servlet软件包、analysis软件包和lucene core软件包)。
大家在写程序的过程中出现了问题,所以一定要调试啊。 只要调试就可以知道你的值是否输了,哪一步有错误。 最后要想很多,先想好再动手。 计算机这门学科考验逻辑能力
自己写的搜索引擎基本参考的这篇文章https://blog.csdn.net/John _ bian/article/details/74502323根据这个大神修改了部分,源代码大神评论区
附上我的爬虫链接(写着low ) (3359 pan.Baidu.com/s/18 xyjpjgkdq9nlbveaq 5s la密码) mrx9)