Lucene txt搜索引擎

Lucene 是一个基于 Java 的全文信息检索工具包,它不是一个完整的搜索应用程序,而是为你的应用程序提供索引和搜索功能。Lucene 目前是 Apache Jakarta 家族中的一个开源项目。也是目前最为流行的基于 Java 开源全文检索工具包。

目前已经有很多应用程序的搜索功能是基于 Lucene 的,比如 Eclipse 的帮助系统的搜索功能。Lucene 能够为文本类型的数据建立索引,所以你只要能把你要索引的数据格式转化的文本的,Lucene 就能对你的文档进行索引和搜索。比如你要对一些 HTML 文档,PDF 文档进行索引的话你就首先需要把 HTML 文档和 PDF 文档转化成文本格式的,然后将转化后的内容交给 Lucene 进行索引,然后把创建好的索引文件保存到磁盘或者内存中,最后根据用户输入的查询条件在索引文件上进行查询。不指定要索引的文档的格式也使 Lucene 能够几乎适用于所有的搜索应用程序。

Lucene 软件包分析

Lucene 软件包的发布形式是一个 JAR 文件,下面我们分析一下这个 JAR 文件里面的主要的 JAVA 包,使读者对之有个初步的了解。

Package: org.apache.lucene.document

这个包提供了一些为封装要索引的文档所需要的类,比如 Document, Field。这样,每一个文档最终被封装成了一个 Document 对象。

Package: org.apache.lucene.analysis

这个包主要功能是对文档进行分词,因为文档在建立索引之前必须要进行分词,所以这个包的作用可以看成是为建立索引做准备工作。

Package: org.apache.lucene.index

这个包提供了一些类来协助创建索引以及对创建好的索引进行更新。这里面有两个基础的类:IndexWriter 和 IndexReader,其中 IndexWriter 是用来创建索引并添加文档到索引中的,IndexReader 是用来删除索引中的文档的。

Package: org.apache.lucene.search

这个包提供了对在建立好的索引上进行搜索所需要的类。比如 IndexSearcher 和 Hits, IndexSearcher 定义了在指定的索引上进行搜索的方法,Hits 用来保存搜索得到的结果。

 

建立索引

为了对文档进行索引,Lucene 提供了五个基础的类,他们分别是 Document, Field, IndexWriter, Analyzer, Directory。下面我们分别介绍一下这五个类的用途:

Document

Document 是用来描述文档的,这里的文档可以指一个 HTML 页面,一封电子邮件,或者是一个文本文件。一个 Document 对象由多个 Field 对象组成的。可以把一个 Document 对象想象成数据库中的一个记录,而每个 Field 对象就是记录的一个字段。

Field

Field 对象是用来描述一个文档的某个属性的,比如一封电子邮件的标题和内容可以用两个 Field 对象分别描述。

Analyzer

在一个文档被索引之前,首先需要对文档内容进行分词处理,这部分工作就是由 Analyzer 来做的。Analyzer 类是一个抽象类,它有多个实现。针对不同的语言和应用需要选择适合的 Analyzer。Analyzer 把分词后的内容交给 IndexWriter 来建立索引。

IndexWriter

IndexWriter 是 Lucene 用来创建索引的一个核心的类,他的作用是把一个个的 Document 对象加到索引中来。

Directory

这个类代表了 Lucene 的索引的存储的位置,这是一个抽象类,它目前有两个实现,第一个是 FSDirectory,它表示一个存储在文件系统中的索引的位置。第二个是 RAMDirectory,它表示一个存储在内存当中的索引的位置。

   实例演示下lucene使用

 

1 导入包lucene-1.4-final.jar

 

2 新建文件夹D:/lucene和D:/lucenedata分别用来存放生成的索引文件和txt搜索文件。

 

3编写建立索引文件

 

运行结果:

Indexing file D:/lucenedata/111111.txt
Indexing file D:/lucenedata/1jinchun.txt
Indexing file D:/lucenedata/2jinchun.txt
Indexing file D:/lucenedata/3jinchun.txt
Indexing file D:/lucenedata/jinchun.txt
It takes 94 milliseconds to create index for the files in directory D:/lucenedata

 

4 编写检索文件,使用3中生成的索引文件

 

运行结果:

File: D:/lucenedata/1jinchun.txt
File: D:/lucenedata/jinchun.txt

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
SEO搜索引擎优化.txt一定要学会SEO! 欢迎来到SEOWHY、 SEO论坛 站长们说:学SEO就上SEOWHY! SEOWHY第四批SEO培训计划 公司企业:进入SEO人才库、了解企业网络营销SEO培训计划 欢迎来电咨询:0755-84875213 夫唯(上班时间) 什么是SEO,SEO是什么意思? SEO的中文意思是搜索引擎优化。通过总结搜索引擎的排名规律,对网站进行合理优化,使你的网站在百度和Google的排名提高,让搜索引擎给你带来客户。什么是SEO优化?开始吧: SEOWHY产品和服务 SEO基础指南 www.seowhy.com,系统的SEO优化教程,SEO新手可以快速入门。 SEO答疑论坛 www.seowhy.com/bbs,在提问、解答中深刻理解SEO优化知识。 友情链接SEO空间 www.seowhy.com/sns,上千位站长提交网站,按类别和PR值交换友情链接。 SEO人才库 www.seowhy.com/rencai,提供关键词优化服务或SEO应聘的平台。 九点咨询 www.seowhy.com/9dian,为企业提供SEO咨询顾问和SEO培训服务。 我们已系统提供全面新手入门教程,请认真对待以下内容! SEO基本概念: 什么是死链接? 什么是错误链接? 什么叫反向链接? 如何查看反向链接更准确? black hat-黑冒 Sandbox-沙盒效应 Alexa排名是什么? ALT-代替属性 link和domain的区别 什么是长尾关键词? 目标关键词是什么意思? 如何进行关键词分析? 关键词密度多少比较好? 写网页内容需要注意些什么? 几大搜索引擎的网站登录入口 做网站该注意哪些基本要素? SEO一般有哪些步骤或环节? 网站被百度和Google封了,怎么办?

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值