• 初识Lucene


      最近准备开发搜索引擎,而在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的常用的工具类

     

     

  • 相关阅读:
    面向对象
    数据库,连接查询
    主外键,子查询
    字符串函数
    数据库。模糊查询,聚合函数,时间日期函数
    数据库。增,删,改,查
    数据库
    多窗体及菜单
    winform公共控件及其常用属性
    winform 客户端应用程序(c/s b/s)
  • 原文地址:https://www.cnblogs.com/codingexperience/p/5123533.html
Copyright © 2020-2023  润新知