码迷,mamicode.com
首页 > Web开发 > 详细

初识Lucene

时间:2016-01-17 23:01:58      阅读:188      评论:0      收藏:0      [点我收藏+]

标签:

  最近准备开发搜索引擎,而在Java的领域开发搜索引擎,基本都要了解Lucene。Lucene是提供高性能的全文检索包,但不提供完整的搜索功能。本文在这里简单介绍Lucene的基本架构与优点。Luence主要的应用方向是嵌入到各种应用中实现针对应用的全文索引/检索功能。

Luence的优点

  为什么在Java语言中开发搜索引擎基本都会提到Lucene呢?说明它必定有很多优秀的地方,根据网上的资料了解到它有以下的优点:

  1. 索引文件格式独立于应用平台。Lucene定义了一套以8位字节为基础的索引文件格式,使得兼容系统或者不同平台的应用能够共享建立的索引文件。
  2. 在传统全文检索引擎的倒排索引的基础上,实现了分块索引,能够针对新的文件建立小文件索引,提升索引速度。然后通过与原有索引的合并,达到优化的目的。
  3. 优秀的面向对象的系统架构,使得对于Lucene扩展的学习难度降低,方便扩充新功能。
  4. 设计了独立于语言和文件格式的文本分析接口,索引器通过接受Token流完成索引文件的创立,用户扩展新的语言和文件格式,只需要实现文本分析的接口。 
  5. 已经默认实现了一套强大的查询引擎,用户无需自己编写代码即使系统可获得强大的查询能力,Lucene的查询实现中默认实现了布尔操作、模糊查询、分组查询等等。

Luence的基本架构

技术分享

Luence的组件架构

技术分享

Luence的常用模块介绍

如下图所示,显示的是Luence5的常见模块,下面对其分别进行介绍

  • org.apache.lucene.analysis   主要对文档进行分词,将文档转换成Token,并提供了默认的实现--StandardAnalyzer,默认实现只能对英文进行分词,对中文分词可采取网上开源的分词软件如:IKAnalyzer;
  • org.apache.lucene.codecs     提供一个抽象的索引结构,并进行编码与解码;
  • org.apache.lucene.document  这里的docment对应对多个字段(Field),而一个字段是关键词组合;
  • org.apache.lucene.index  提供创建与操作索引的方法。
  • org.apache.lucene.search  对文档进行搜索
  • org.apache.lucene.store  提供独立于平台的存储方式,并提供多个实现
  • org.apache.lucene.util         提供Luence的常用的工具类

技术分享 

 

 

初识Lucene

标签:

原文地址:http://www.cnblogs.com/codingexperience/p/5123533.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!