Compass实战 站内搜索

今天早上打算对这两天学习的Lucene以及Compass总结一下,想来想去,还是写个小项目来验证最好了。于是就有了今天的这篇文章。难易程度适合对于Compass或者Lucene刚入门的童鞋,大牛看到后望轻喷 :-)


[TOC]


项目预览

首页
查询结果

项目需求

这是一个小项目,唯一实现的就是发帖以及站内搜索功能。所以我们的目标很明确了。由于这里仅仅是演示Compass的实现,所以就没有整合数据库的那一块,即保证数据库和索引库信息的一致性。(这一点在Business层进行控制即可)。

项目目录

  • 一个逻辑清晰的项目目录可以帮助我们快速理解和学习。


    项目目录
  • 引用到的jar包有:


    引用到的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>

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,132评论 25 709
  • 一、什么是Lucene Lucene是apache下的一个开源的全文检索引擎工具包。它为软件开发人员提供一个简单易...
    我可能是个假开发阅读 13,489评论 2 15
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,323评论 19 139
  • 一 我有一个爱拖延的朋友,为了缓解拖延症,于是她去图书馆借了一本治疗拖延症的书来看。结果,两个月过去了,到还书的截...
    饶山阅读 2,920评论 0 0
  • 南国是有秋的,只不过总是姗姗来迟。当江南的黄叶打着旋儿北方落雪时,在无尽的等待与翘首中,秋,轻轻的,浅浅的...
    蔚蓝dxf阅读 3,276评论 0 0