Lucene基础知识

Lucene包结构
1、org.apache.lucene.analysis 对需要建立索引的文本进行分词、过滤等操作, 语言分析器,
主要用于的切词Analyzer 是一个抽象类,管理对文本内容的切分词规则。
2、org.apache.lucene.analysis.standard 是标准分析器
3、org.apache.lucene.document 提供对Document 和Field 的各种操作的支持。索引存储时的
文档结构管理,类似于关系型数据库的表结构。Document 相对于关系型数据库的记录对象,
Field 主要负责字段的管理。
4、org.apache.lucene.index 是最重要的包,用于向Lucene 提供建立索引时各种操作的支持。
索引管理,包括索引建立、删除等。索引包是整个系统核心,全文检索的根本就是为每个切
出来的词建索引,查询时就只需要遍历索引,而不需要去正文中遍历,从而极大的提高检索
效率。
5、org.apache.lucene.queryParser 提供检索时的分析支持。查询分析器,实现查询关键词间的
运算,如与、或、非等。
6、org.apache.lucene.search 负责检索。检索管理,根据查询条件,检索得到结果。
7、org.apache.lucene.store 提供对索引存储的支持。数据存储管理,主要包括一些底层的I/0
操作。
8、org.apache.lucene.util 提供一些常用工具类和常量类的支持

[size=large][color=red]原理和工作方式[/color][/size]
Lucene是一个全文搜索框架,而不是应用产品,它可以方便的嵌入到各种应用中实现针对应用的全文索引/检索功能。因此它并不像www.baidu.com 或者google Desktop那么拿来就能用,它只是提供了一种工具让你能实现这些产品。
Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,即它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎(英文与德文两种西方语言)。Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎。
作为一个开放源代码项目,Lucene从问世之后,引发了开放源代码社群的巨大反响,程序员们不仅使用它构建具体的全文检索应用,而且将之集成到各种系统软件中去,以及构建Web应用,甚至某些商业软件也采用了Lucene作为其内部全文检索子系统的核心。
已经有很多Java项目都使用了Lucene作为其后台的全文索引引擎,比较著名的有:Jive:WEB论坛系统;Eyebrows:邮件列表HTML归档/浏览/查询系;Cocoon:基于XML的web发布框架,全文检索部分使用了Lucene;apache软件基金会的网站使用了Lucene作为全文检索的引擎;IBM的开源软件eclipse的2.1版本中也采用了Lucene作为帮助子系统的全文索引引擎;IBM的商业软件Web Sphere中也采用了Lucene。
Lucene以其开放源代码的特性、优异的索引结构、良好的系统架构获得了越来越多的应用。Lucene是一个高性能、可伸缩的信息搜索(IR)库。它使你可以为你的应用程序添加索引和搜索能力。Lucene是用java实现的成熟的、免费的开源项目,是著名的Apache Jakarta大家庭的一员,并且基于在Apache软件许可 [ASF, License]。同样,Lucene是当前与近几年内非常流行的免费的Java信息搜索(IR)库。
lucene提供的服务实际包含两部分:一入一出。所谓入是写入,即将你提供的源(本质是字符串)写入索引或者将其从索引中删除;所谓出是读出,即向用户提供全文搜索服务,让用户可以通过关键词定位源。
写入流程:源字符串首先经过analyzer处理,包括:分词,分成一个个单词;去除stopword(可选)。将源中需要的信息加入Document的各个Field中,并把需要索引的Field索引起来,把需要存储的Field存储起来。 将索引写入存储器,存储器可以是内存或磁盘。
读出流程:用户提供搜索关键词,经过analyzer处理。对处理后的关键词搜索索引找出对应的Document。用户根据需要从找到的Document中提取需要的Field。
索引过程:从命令行读取文件名(多个),将文件分路径(path字段)和内容(body字段)2个字段进行存储,并对内容进行全文索引:索引的单位是Document对象,每个Document对象包含多个字段Field对象,针对不同的字段属性和数据输出的需求,对字段还可以选择不同的索引/存储字段规则。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值