zoukankan      html  css  js  c++  java
  • 初识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的常用的工具类

     

     

  • 相关阅读:
    笔记35 跨重定向请求传递数
    判断邮箱的正则表达式
    按钮
    async await 的用法
    笔记34 Spring MVC的高级技术——处理multipart形式的数据
    Convert Sorted Array to Binary Search Tree
    Binary Tree Zigzag Level Order Traversal
    Unique Binary Search Trees,Unique Binary Search Trees II
    Validate Binary Search Tree
    Populating Next Right Pointers in Each Node,Populating Next Right Pointers in Each Node II
  • 原文地址:https://www.cnblogs.com/codingexperience/p/5123533.html
Copyright © 2011-2022 走看看