Lucene教程详解

本文详细介绍了Lucene的环境搭建,包括下载JDK、Tomcat和Lucene,以及如何创建索引和部署到Tomcat。还探讨了搜索引擎的组成,包括搜索器、索引器、检索器和用户接口。此外,文章通过实例展示了如何使用Analyzer、Document、Field、IndexWriter和QueryParser进行索引创建和查询操作,强调了Lucene的主要任务是建立索引和搜索。最后,文章提到了Lucene的一些术语和使用技巧,如IndexWriter、Analyzer、Document、Field、Query、QueryParser和Hits的使用,以及索引和搜索的基本流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


  • 欢迎关注微信账号: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这两个文件,将其解压(建议放在安装jdklib文件夹内),并把路径添加到环境变量的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 时查询报错,根据提示将安装Tomcatwebapps\luceneweb\results.jsp 

[    QueryParser qp = new QueryParser("contents", analyzer);     ]     修改为

[    QueryParser qp = new QueryParser(Version.LUCENE_CURRENT,"contents", analyzer);    ]

 

注:本文参考YM's house

lucenedemo环境搭建 

总结一下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.jartemp文件夹中,解压。

 

如果没有配置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进入tomcatwebapps\文件夹中,启动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对象(IndexSearchsearch函数,参数是Query查询对象,)

6TopDocs对象数组里存放查询信息

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 " );   

评论 29
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值