今天早上打算对这两天学习的Lucene以及Compass总结一下,想来想去,还是写个小项目来验证最好了。于是就有了今天的这篇文章。难易程度适合对于Compass或者Lucene刚入门的童鞋,大牛看到后望轻喷 :-)
[TOC]
项目预览
项目需求
这是一个小项目,唯一实现的就是发帖以及站内搜索功能。所以我们的目标很明确了。由于这里仅仅是演示Compass的实现,所以就没有整合数据库的那一块,即保证数据库和索引库信息的一致性。(这一点在Business层进行控制即可)。
项目目录
-
一个逻辑清晰的项目目录可以帮助我们快速理解和学习。
-
引用到的jar包有:
核心处理
由于代码比较多,所以一个个的贴出代码也没什么价值。文末我会将项目的下载地址分享出来。这里仅仅是讲解一下核心处理部分。
发帖部分
st=>start: 在index.jsp页面填写表单
e=>end: 业务完成
op1=>operation: 表单将数据交给PublishArticleServlet
op2=>operation: Servlet调用DAO层代码实现数据“持久化,索引化”
st->op1->op2->e
<font color="red" size="6">*</font>查询部分
st=>start: 在index.jsp页面填写查询内容
e=>end: 在视图层中展示查询结果,并高亮关键字
op1=>operation: 表单将数据交给SearchServlet
op2=>operation: Servlet调用DAO层代码获取查询到的数据结果,并做了处理
st->op1->op2->e
总结
本例主要是以MVC模式为架构实现。逻辑上自认为还是比较清晰。
我们在开发的过程中只要按照自己的业务需求来定制自己的实体层数据即可。详见本例domain.Article.java
的实现。
最后,附上本项目的下载地址。请自取,另外如果您觉得这个例子还不错,请不要吝啬您的星星,Star一下吧。
st=>start: 下载地址↓
e=>end: ↓
st->e
<font size="7"><a href="https://github.com/guoruibiao/Compass-Impl" >Compass-Impl站内搜索实战</a></font>