- 欢迎关注微信账号:java那些事:csh624366188.每天一篇java相关的文章
注明:本文是由本人在开发有关基于lucene资源检索系统时的一点总结,其中一部分是自己根据开发过程自己总结的,也有部分是摘自网络,因无法获取当时摘文的地址,所以在此没有写源地址。
转载请声明出处
Lucene-3.0.0配置
一、Lucene开发环境配置
step1.Lucene开发包下载
step2.Java开发环境配置
step3.Tomcat安装
step4.Lucene开发环境配置
解压下载的lucene-3.0.0.zip,可以看到lucene-core-3.0.0.jar和lucene-demos-3.0.0.jar这两个文件,将其解压(建议放在安装jdk的lib文件夹内),并把路径添加到环境变量的classpath。 二、Lucene开发包中Demo调试 控制台应用程序 step1.建立索引 >java org.apache.lucene.demo.IndexFiles [C:\Java](已经存在的任意文件路径) 将对C:\Java下所有文件建立索引,同时,在当前命令行位置将生成“index”文件夹。 step2.执行查询 >java org.apache.lucene.demo.SearchFiles 将会出现“Query:”提示符,在其后输入关键字,回车,即可得到查询结果。 Web应用程序 step1.将lucene-core-3.0.0.jar和lucene-demos-3.0.0jar这两个文件复制到安装Tomcat 的\common\lib中 step2.解压下载的lucene-3.0.0.zip,可以看到luceneweb.war文件。将该文件复制到安装Tomcat的\webapps step3.重启Tomcat服务器。 step4.建立索引
>java org.apache.lucene.demo.IndexHTML -create -index [索引数据存放路径] [被索引文件路径](如:D:\lucene\temp\index D:\lucene\temp\docs) step5.打开安装Tomcat的\webapps\luceneweb\configuration.jsp文件,找到String indexLocation = "***",将"***"改为第四步中[索引数据存放路径],保存关闭。 step6.执行查询 http://localhost:8080/luceneweb 在文本框中输入关键字,执行,即可得到查询结果。
说明:本文采用lucene-3.0.0版本,运行step6 时查询报错,根据提示将安装Tomcat的webapps\luceneweb\results.jsp 中 [ QueryParser qp = new QueryParser("contents", analyzer); ] 修改为 [ QueryParser qp = new QueryParser(Version.LUCENE_CURRENT,"contents", analyzer); ]
注:本文参考YM's house |
总结一下lucene的环境搭建,查看以及了解lucene的原理,对其有个大概的了解。
1、下载lucene2.3.2
地址:http://apache.mirror.phpchina.com/lucene/java/
2、下载jdk1.6
3、下载tomcat
下载以上内容完成后,开始安装。
1、安装jdk
一路确定下去,无需选择。
2、安装tomcat
一路确定下去,无需选择。
3、解压文件即可
假设解压文件路径为d:\lucene\
现在可以建立目录(此处的目录为我们要进行检索的信息的原始数据文件,我们放置在docs中,还有一个是lucene生成的检索信息,我们放置于index中),即可以在d:\lucene下建立一个temp\docs以及temp\index,此处两个文件夹目录可以随意,当然不一定非得放置于d:\lucene。
然后将需要检索的原始数据文件放置于docs文件夹中。
拷贝解压的lucene文件夹中的lucene-core-2.3.2.jar以及lucene-demos-2.3.2.jar到temp文件夹中,解压。
如果没有配置jdk环境,参考下方:
打开我的电脑-属性-高级-环境变量:
在系统变量中添加:
JAVA_HOME C:\Program Files\Java\jdk1.6.0
PATH %JAVA_HOME%\bin
CLASSPATH .;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\jre\lib\rt.jar;
打开命令行:将目录定位到temp文件夹。
输入命令:
java org.apache.lucene.demo.IndexHTML -create -index D:\lucene\temp\index D:\lucene\temp\docs
即建立索引与原始数据文件的关系。
完成后,会发现index文件夹中多处一部分数据,以后再研究。
然后找到tomcat的安装目录,拷贝lucene中的luceneweb.war进入tomcat的webapps\文件夹中,启动tomcat,会看见webapps\下多出一个文件夹,找到configuration.jsp文件,将其中的String indexLocation = "/opt/lucene/index";修改为String indexLocation = "D:/lucene/temp/index";就是刚才生成的文件。
打开浏览器,输入http://127.0.0.1:8080/luceneweb/
输入需要查询的信息,看看结果如何。
简单地说:首先建立索引文件放置目录,cmd命令生成索引文件,部署工程,修改工程文件中目标为索引文件目录。
搜索引擎的组成
搜索引擎一般由搜索器、索引器、检索器和用户接口四个部分组成:
搜索器
其功能是在互联网中漫游,发现和搜集信息;
索引器
其功能是理解搜索器所搜索到的信息,从中抽取出索引项,用于表示文档以及生成文档库的索引表;
检索器
其功能是根据用户的查询在索引库中快速检索文档,进行相关度评价,对将要输出的结果排序,并能按用户的查询需求合理反馈信息;
用户接口
其作用是接纳用户查询、显示查询结果、提供个性化查询项。
d:\lucene\index是上一篇学习笔记([Lucene3.0学习笔记1(建立索引)] )中生成的索引文件的存放地址。具体步骤简介如下:
1、创建Directory对象,索引文件夹
2、创建IndexSearch对象,建立查询(参数是Directory对象)
3、创建QueryParser对象(lucene版本,查询Field字段,所用分词器)
4、生成Query对象,由QueryParser对象的parse函数生成(参数是所查的关键字)
5、建立TopDocs对象(IndexSearch的search函数,参数是Query查询对象,)
6、TopDocs对象数组里存放查询信息
7、关闭IndexSearch
索引创建和搜索过程所一个总结
Lucene教程
Lucene是apache组织的一个用java实现全文搜索引擎的开源项目。 其功能非常的强大,api也很简单。总得来说用Lucene来进行建立 和搜索和操作数据库是差不多的(有点像),Document可以看作是 数据库的一行记录,Field可以看作是数据库的字段。用lucene实 现搜索引擎就像用JDBC实现连接数据库一样简单。
Lucene2.0,它与以前广泛应用和介绍的Lucene 1.4.3并不兼容。 Lucene2.0的下载地址是http://apache.justdn.org/lucene/java/
例子一 :
1、在windows系统下的的C盘,建一个名叫s的文件夹,在该文件夹里面随便建三个txt文件,随便起名啦,就叫"1.txt","2.txt"和"3.txt"啦
其中1.txt的内容如下:
中华人民共和国
全国人民
2006年
而"2.txt"和"3.txt"的内容也可以随便写几写,这里懒写,就复制一个和1.txt文件的内容一样吧
2、下载lucene包,放在classpath路径中
建立索引:
package lighter.javaeye.com;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Date;
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.index.IndexWriter;
/** */ /**
* author lighter date 2006-8-7
*/
public class TextFileIndexer {
public static void main(String[] args) throws Exception {
/**/ /* 指明要索引文件夹的位置,这里是C盘的S文件夹下 */
File fileDir = new File( " c://s " );