自己动手写搜索引擎(常搜吧项目展示)(Java、Lucene、hadoop)

学习了两星期的Lucene,对它的基础知识有了一定的掌握,并开发了自己的常搜吧项目。下面展示下我的项目,其实用到的都是很Lucene中很基础的知识,以及第三方工具,例如XPDF,Htmlparser,paoding分词器 .etc 。


本项目采用Struts2 + Mybatis + spring框架搭建,数据库用的Oracle。(博主只是到了灵活应用的程度,对于源码还是小白)。前端采用了国外的开源框架(Bootstrap)非常的强大和美观。为了良好的资源,搜图片部分利用了Flickr的API完成。


项目完成后的感受是:对于学习Java的朋友,希望大家能够快速学习,坚持学习。先学到混饭的水平,然后慢慢再深入吧。总之:保持一直在学习的态度就好。


1、主页面:(简单、漂亮、o(∩_∩)o )


2、搜文档(支持pdf和word,Pdf格式利用了Xpdf转换txt、Word采用POI解析)


3、搜索CSDN(利用了heritrix网络爬虫爬取CSDN全站,然后递归文件利用Htmlparser解析建立索引)


4、搜MP3(主要利用了jquery,以及HTML5里的<audio>标签,兼容性比较差,考虑只是练习,不再去完善,兼容Firefox、chrom .etc)


5、搜图片(利用Flickr的官方API借口,比较容易实现)


6、管理员界面(同样是利用国外的Bootstrap框架的第三方Demo改写)


7、音乐功能管理页面


后来想想,其实实现这些功能,完全用不到数据库的 。 流程就是 :资源 - 解析 - 分词 - 索引 - 检索 。

对于Lucene的学习先到此为止,Java编程真的很庞大,希望以后能够深入学习,理解源码才是真正的大神。


计划只对lucene有所了解,目地是为了学习hadoop,为自己加油 ~


  • 9
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 37
    评论
自己动手搜索引擎 1 第1章 了解搜索引擎 1 1.1 Google神话 1 1.2 体验搜索引擎 1 1.3 你也可以做搜索引擎 4 1.4 本章小结 4 第2章 遍历搜索引擎技术 5 2.1 30分钟实现的搜索引擎 5 2.1.1 准备工作环境(10分钟) 5 2.1.2 编代码(15分钟) 6 2.1.3 发布运行(5分钟) 9 2.2 搜索引擎基本技术 14 2.2.1 网络蜘蛛 14 2.2.2 全文索引结构 14 2.2.3 Lucene 全文检索引擎 15 2.2.4 Nutch网络索软件 15 2.2.5 用户界面 17 2.3 商业搜索引擎技术介绍 17 2.3.1 通用索 17 2.3.2 垂直索 18 2.3.3 站内索 19 2.3.4 桌面索 21 2.4 本章小结 21 第3章 获得海量数据 22 3.1 自己的网络蜘蛛 22 3.1.1 BerkeleyDB介绍 27 3.1.2 抓取网页 28 3.1.3 MP3 抓取 29 3.1.4 RSS 抓取 30 3.1.5 图片抓取 33 3.1.6 垂直行业抓取 34 3.2 抓取数据库中的内容 36 3.2.1 建立数据视图 36 3.2.2 JDBC数据库连接 36 3.2.3 增量抓取 40 3.3 抓取本地硬盘上的文件 41 3.3.1 目录遍历 41 3.4 本章小结 42 第4章 提取文档中的文本内容 43 4.1 从HTML文件中提取文本 43 4.1.1 HtmlParser介绍 51 4.1.2 结构化信息提取 54 4.1.3 网页去噪 60 4.1.4 网页结构相似度计算 63 4.1.5 正文提取的工具FireBug 64 4.1.6 正文提取的工具NekoHTML 66 4.1.7 正文提取 68 4.2 从非HTML文件中提取文本 73 4.2.1 TEXT文件 73 4.2.2 PDF文件 73 4.2.3 Word文件 82 4.2.4 Rtf文件 82 4.2.5 Excel文件 83 4.2.6 PowerPoint文件 84 4.3 流媒体内容提取 85 4.3.1 音频流内容提取 85 4.3.2 视频流内容提取 87 4.4 抓取限制应对方法 89 4.5 本章小结 90 第5章 自然语言处理 91 5.1 中文分词处理 91 5.1.1 Lucene 中的中文分词 91 5.1.2 Lietu中文分词的使用 92 5.1.3 中文分词的原理 92 5.1.4 查找词典算法 95 5.1.5 最大概率分词方法 98 5.1.6 新词发现 101 5.1.7 隐马尔可夫模型 102 5.2 语法解析树 104 5.3 文档排重 105 5.4 中文关键词提取 106 5.4.1 关键词提取的基本方法 106 5.4.2 关键词提取的设计 107 5.4.3 从网页提取关键词 107 5.5 相关索 107 5.6 拼检查 110 5.6.1 英文拼检查 110 5.6.2 中文拼检查 112 5.7 自动摘要 116 5.7.1 自动摘要技术 117 5.7.2 自动摘要的设计 117 5.7.3 Lucene中的动态摘要 124 5.8 自动分类 125 5.8.1 Classifier4J 126 5.8.2 自动分类的接口定义 127 5.8.3 自动分类的SVM方法实现 128 5.8.4 多级分类 128 5.9 自动聚类 131 5.9.1 聚类的定义 131 5.9.2 K均值聚类方法 131 5.9.3 K均值实现 133 5.10 拼音转换 138 5.11 语义索 139 5.12 跨语言索 143 5.13 本章小结 144 第6章 创建索引库 145 6.1 设计索引库结构 146 6.1.1 理解 Lucene 的索引库结构 146 6.1.2 设计一个简单的索引库 148 6.2 创建和维护索引库 149 6.2.1 创建索引库 149 6.2.2 向索引库中添加索引文档 149 6.2.3 删除索引库中的索引文档 151 6.2.4 更新索引库中的索引文档 151 6.2.5 索引的合并 151 6.2.6 索引的定时更新 152 6.2.7 索引的备份和恢复 153 6.2.8 修复索引 154 6.3 读并发控制 154 6.4 优化使用 Lucene 155 6.4.1 索引优化 155 6.4.2 查询优化 157 6.4.3 实现时间加权排序 162 6.4.4 实现字词混合索引 163 6.4.5 定制Similarity 170 6.4.6 定制Tokenizer 171 6.5 查询大容量索引 173 6.6 本章小结 174 第7章

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 37
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值