Lucene初学(二)
2015-12-04 22:16
246 查看
本博文将以叙事性的方式描述我的lucene学习过程,以此记录我的学习流程(也可以给读者作为参考。每周更新一次)
唠叨:2015年12月3日,到目前为止我已经学习lucene有两周多了,为什么我上周我没发《Lucene初学(二)》呢?因为我困在了lucene的实现上。我已经学习到《Lucene搜索引擎开发进阶实战》的第7章了,上周就已经学习到那。那里刚好开始讲解网站的lucene实现,所以我先是花了点时间去回忆JavaWeb。但由于一时回忆不起来,这么一周就过去了。(血淋淋的教训啊。。以后学习新技术别乱将不熟练的技术加进去,专心点)
今天讲解的内容涉及一些前置知识,未学过的,稍微跳过web实现部分吧。
前置知识:html+css+JavaScript,JQuery,Ajax,jsp,servlet,json,jdbc,MySQL,maven
开始:
今天的主题是“Lucene在web的实现”,目录如下:
1,lucene在web端的用途
2,lucene如何融入web
2.5,业务需求(自定义)
3,前期准备
4,如何安排步骤
5,经验总结
1,lucene在web端的用途
答:我是这么认为的,lucene不是一款完整的技术,他相当于一个工具盒。所以在页面提供关键字、条件等的输入,在后台利用lucene进行建立索引、搜索索引、组织信息等操作,然后将查询到的信息返回页面。如:百度、必应、google、知乎等。
2,lucene如何融入web
答:就我目前学习到的,
①可以在web创建之前,利用Indexer进行建立索引(如果时爬虫类的应用,或者更新型的,另当别论)。
②在提供关键字后,利用Searcher进行搜索索引,返回信息
2.5,业务需求(自定义)
答:
1,为数据库创建索引
2,通过网页输入关键字,将关键字传到后台分析后
3,搜索索引相关的信息
4,将信息回传到界面
5,显示多条结果
3,前期准备
答:
硬件:
1,编辑设备:联想笔记本电脑一台
软件:
1,数据库:MySQL最新版(轻量快捷)
2,开发工具:MyEclipse 2015 stable2.0,maven(带有自动下载jar包的功能)
3,使用技术:JQuery(使用最新版,暂时不考虑网页兼容性)+html+css+javascript+jsp,servlet(比较熟练),jdbc,json
4,做界面:直接用记事本Notepad++(速度快)
5,相关jar包:MySQL驱动,lucene-core,lucene-analysis,lucene-parser,org.json,servlet-api,junit
6,相关文件:jquery.js,json2.js
7,服务器:Tomcat8(目前仅有)
8,浏览器:google chrome(暂不考虑兼容性)
4,如何设计步骤
答:
-1,绘制总体格局图(从前端到后台,再到数据库)
-2,数据库准备数据
-3,制作界面
-4,后台分包
-5,分析实体,并创建相应的实体
-6,设计相关的model,util,service,servlet
-7,前端后台连接
-8,完善后台
-9,测试test
-10,发布到服务器
-11,访问
5,经验总结
答:
①别在做项目时,用自己感觉生疏的工具(适合的,才是最好的)
②先指定计划,一步一步地推进(MVC)
③给自己一个deadline。其实我上面的网站是花了1天做出来的,很简陋吧?但又很多时间都浪费在杂事上,所以要有一个deadline
下面是代码咯,我也会一步步地引导做出一个小网站,目录如下:
1,分析好上述的业务需求,最好是绘制出运作图。(以便理清思路,以及从宏观上掌握流程。我就不上图了,CSDN弄不来)
2,准备好上述的“前期准备”。(打战,粮草先行)
3,界面设计与数据库的配置可以同步进行。
界面代码index.html(json2.js是一个js解析json格式数据的文件,百度一下就有):
数据库可以随意一点,在这里我设置的是:
数据库名:lucene_data
表名:t_user
表结构:
user_id:用户id,int,自增,主键
user_name:用户名,varchar
content:用户描述,varchar
当然,数据库还要插入一些数据。
4,后台设计,这里就要用到第一步时的业务逻辑图了,为了简单,我只使用了主要的三个类(其余类,我将简单描述,不作深入分析)。
Indexer:创建索引
Searcher:搜索索引
SearchServlet:主要的搜索入口
5,上面的代码都可以参照《Lucene搜索引擎开发进阶实战》,不过我的代码不是书上的,是自己写的,所以稍微有些不同。
所以,这一步主要是junit测试。
6,启动网站试一下吧!!!
下面是百度云中,我的代码:http://pan.baidu.com/s/1mhoOYzm
唠叨:2015年12月3日,到目前为止我已经学习lucene有两周多了,为什么我上周我没发《Lucene初学(二)》呢?因为我困在了lucene的实现上。我已经学习到《Lucene搜索引擎开发进阶实战》的第7章了,上周就已经学习到那。那里刚好开始讲解网站的lucene实现,所以我先是花了点时间去回忆JavaWeb。但由于一时回忆不起来,这么一周就过去了。(血淋淋的教训啊。。以后学习新技术别乱将不熟练的技术加进去,专心点)
今天讲解的内容涉及一些前置知识,未学过的,稍微跳过web实现部分吧。
前置知识:html+css+JavaScript,JQuery,Ajax,jsp,servlet,json,jdbc,MySQL,maven
开始:
今天的主题是“Lucene在web的实现”,目录如下:
1,lucene在web端的用途
2,lucene如何融入web
2.5,业务需求(自定义)
3,前期准备
4,如何安排步骤
5,经验总结
1,lucene在web端的用途
答:我是这么认为的,lucene不是一款完整的技术,他相当于一个工具盒。所以在页面提供关键字、条件等的输入,在后台利用lucene进行建立索引、搜索索引、组织信息等操作,然后将查询到的信息返回页面。如:百度、必应、google、知乎等。
2,lucene如何融入web
答:就我目前学习到的,
①可以在web创建之前,利用Indexer进行建立索引(如果时爬虫类的应用,或者更新型的,另当别论)。
②在提供关键字后,利用Searcher进行搜索索引,返回信息
2.5,业务需求(自定义)
答:
1,为数据库创建索引
2,通过网页输入关键字,将关键字传到后台分析后
3,搜索索引相关的信息
4,将信息回传到界面
5,显示多条结果
3,前期准备
答:
硬件:
1,编辑设备:联想笔记本电脑一台
软件:
1,数据库:MySQL最新版(轻量快捷)
2,开发工具:MyEclipse 2015 stable2.0,maven(带有自动下载jar包的功能)
3,使用技术:JQuery(使用最新版,暂时不考虑网页兼容性)+html+css+javascript+jsp,servlet(比较熟练),jdbc,json
4,做界面:直接用记事本Notepad++(速度快)
5,相关jar包:MySQL驱动,lucene-core,lucene-analysis,lucene-parser,org.json,servlet-api,junit
6,相关文件:jquery.js,json2.js
7,服务器:Tomcat8(目前仅有)
8,浏览器:google chrome(暂不考虑兼容性)
4,如何设计步骤
答:
-1,绘制总体格局图(从前端到后台,再到数据库)
-2,数据库准备数据
-3,制作界面
-4,后台分包
-5,分析实体,并创建相应的实体
-6,设计相关的model,util,service,servlet
-7,前端后台连接
-8,完善后台
-9,测试test
-10,发布到服务器
-11,访问
5,经验总结
答:
①别在做项目时,用自己感觉生疏的工具(适合的,才是最好的)
②先指定计划,一步一步地推进(MVC)
③给自己一个deadline。其实我上面的网站是花了1天做出来的,很简陋吧?但又很多时间都浪费在杂事上,所以要有一个deadline
下面是代码咯,我也会一步步地引导做出一个小网站,目录如下:
1,分析好上述的业务需求,最好是绘制出运作图。(以便理清思路,以及从宏观上掌握流程。我就不上图了,CSDN弄不来)
2,准备好上述的“前期准备”。(打战,粮草先行)
3,界面设计与数据库的配置可以同步进行。
界面代码index.html(json2.js是一个js解析json格式数据的文件,百度一下就有):
<html> <head> <meta charset="UTF-8" /> <title>搜索引擎</title> <script type="text/javascript" src="../js/jquery-2.1.4.min.js"></script> <script type="text/javascript" src="../js/json2.js"></script> <script type="text/javascript"> function search() { $.ajax({ url : "../SearchServlet", //请求的url data : { keyword : $("#keyword").val() }, //json格式 datatype : "text", //返回的数据类型 type : "post", //请求的方式 success : function(data) { //请求成功后执行的回调函数,data为返回的数据 $("#outcome").html(""); var outcome = JSON.parse(data); for (i = 0; i < outcome.length; i++) { $("#outcome").append( "用户名: " + outcome[i].username + "<br>信息:" + outcome[i].content + "<br><br>"); } if (outcome.length == 0) { $("#outcome").append("没有结果o(╯□╰)o"); } } }); } </script> </head> <body> <h1>搜索引擎</h1> <h6 style="color:red">请在下方输入关键词</h6> <input type="text" id="keyword" /> <input type="button" value="搜索一下" onclick="search()" /> <br> <br> <br> <h3>结果:</h3> <div id="outcome"></div> </body> </html>
数据库可以随意一点,在这里我设置的是:
数据库名:lucene_data
表名:t_user
表结构:
user_id:用户id,int,自增,主键
user_name:用户名,varchar
content:用户描述,varchar
当然,数据库还要插入一些数据。
4,后台设计,这里就要用到第一步时的业务逻辑图了,为了简单,我只使用了主要的三个类(其余类,我将简单描述,不作深入分析)。
Indexer:创建索引
Searcher:搜索索引
SearchServlet:主要的搜索入口
5,上面的代码都可以参照《Lucene搜索引擎开发进阶实战》,不过我的代码不是书上的,是自己写的,所以稍微有些不同。
所以,这一步主要是junit测试。
6,启动网站试一下吧!!!
下面是百度云中,我的代码:http://pan.baidu.com/s/1mhoOYzm
相关文章推荐
- java-WEB中的监听器Lisener
- GUI - Web前端开发框架
- Extjs4.0 最新最全视频教程
- 微信搜一搜迈出新的一步,好戏来了
- MyEclipse Web Project转Eclipse Dynamic Web Project
- axis备忘
- Erlang实现的一个Web服务器代码实例
- 防止网页脚本病毒执行的方法-from web
- 自学成才的秘密:115个 web Develop 资源
- 使用批处理修改web打印设置笔记 适用于IE
- Apache Web让JSP“动”起来
- web下载的ActiveX控件自动更新
- 推荐六款WEB上传组件性能测试与比较第1/10页
- 关于三种主流WEB架构的思考
- 使用 Iisext.vbs 列出 Web 服务扩展文件的方法
- 使用 Iisext.vbs 删除 Web 服务扩展文件的方法
- 使用 iisext.vbs 禁用 Web 服务扩展的方法
- 用vbs 实现从剪贴板中抓取一个 URL 然后在浏览器中打开该 Web 站点
- web标准知识——从p开始,循序渐进
- web标准知识――用途相似的标签