`
hnhxwyx
  • 浏览: 1915 次
  • 性别: Icon_minigender_2
  • 来自: 河南郑州
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论
阅读更多

Lucene(发音为 ['lusen] )是一个非常优秀的开源的全文搜索引擎,我们可以在它的上面开发出各种全文搜索的应用来。Lucene在国外有很高的知名度,现在已经是Apache的顶级项目,在国内,Lucene的应用也越来越多。<o:p></o:p>

.Lucene建立索引

   lucene建立索引, Lucene是一个高性能的java全文检索工具包,它使用的是倒排文件索引结构。该结构及相应的生成算法如下:

1)      以投诉内容假设有数据库中有2条记录

1条记录的投诉内容: 为什么我在经三路上接不到电话,而且我这个月的话费很高.

2条记录的投诉内容: 我九月份的话费怎么那么高呢

2) lucene进行全文分析.获得

1条记录的关键字:

为什么    经三路  接不到  电话  话费 

2条记录的关键字:

  九月  话费   

3)lucene进行倒排索引.关键字在那些记录中出现过.

            关键字

       对应的记录号

           经三路

          1

            九月

          2

            

          1,2

           话费

          1,2

            

          1,2

为例子说明一下该结构,”在第1条记录中存在,在第2条记录中也存在.也就是说当用户输入关键字的时候可以查找到第1条记录和第2条记录.

通常仅知道关键词在哪些文章中出现还不够,我们还需要知道关键词在文章中出现次数和出现的位置,通常有两种位置:a)字符位置,即记录该词是文章中第几个字符(优点是关键词亮显时定位快);b)关键词位置,即记录该词是文章中第几个关键词(优点是节约索引空间、词组(phase)查询快),lucene中记录的就是这种位置。

加上出现频率出现位置信息后,我们的索引结构变为:

    关键字

    对应的记录号

   [出现频率]

   出现位置

    经三路

        1

  [2]

    2,6

     九月

        2

  [1]

    2

    

        1

  [1]

    8

<o:p> </o:p>

        2

  [1]

     4

   话费

     1

[1]

     7

<o:p> </o:p>

     2

[1]

     3

  

     1

[2]

     2,6

<o:p> </o:p>

     2

[1]

      1

以我为例子说明该结构,”在记录1中出项[2],位置在2,6,在记录2中出现[1]次位置在1.

<o:p> </o:p>

lucene将上面三列分别作为词典文件(Term Dictionary)、频率文件(frequencies)、位置文件 (positions)保存。其中词典文件不仅保存有每个关键词,还保留了指向频率文件和位置文件的指针,通过指针可以找到该关键字的频率信息和位置信息。为了减小索引文件的大小,Lucene对索引还使用了压缩技术。

   下面我们可以通过对该索引的查询来解释一下为什么要建立索引。
假设要查询单词话费lucene先对词典二元查找、找到该词,通过指向频率文件的指针读出所有文章号,然后返回结果。词典通常非常小,因而,整个过程的时间是毫秒级的。
而用普通的顺序匹配算法,不建索引,而是对所有文章的内容进行字符串匹配,这个过程将会相当缓慢,当文章数目很大时,时间往往是无法忍受的。

4)当用户输入 [],就可以搜索到第1条记录和第2条记录.输入[经三路]可以搜索到第1条记录.输入[话费]可以搜索到第1条记录和第2条记录.

以上是lucene的用法.

分享到:
评论
2 楼 Java_xiaohao 2010-12-23  
白痴 写一大堆中文 代码呢?
1 楼 hnlzwaq 2007-08-21  

写的不错
继续努力

相关推荐

    基于java的Lucene全文搜索引擎资源简单实例下载

    **基于Java的Lucene全文搜索引擎资源简单实例** Lucene是一个由Apache软件基金会开发的开源全文检索库,它为Java开发者提供了强大的文本搜索功能。Lucene是高性能、可扩展的信息检索库,可以集成到各种Java应用中,...

    基于Lucene的搜索引擎的研究与应用

    与传统基于SQL数据库的搜索引擎相比,基于Lucene的搜索引擎在处理大规模数据集时,特别是在需要全文检索和模糊搜索的情况下,更加高效。文章中的新闻搜索引擎通过使用Lucene的API,相比普通搜索引擎,提高了搜索的...

    基于lucene框架开发的全文搜索引擎含源代码

    本系统是基于lucene框架开发的全文搜索引擎,能实现txt、doc、pdf、excel、ppt等常见文档的全文检索,可以直接部署到tomcat下即可运行,需要研究lucene或实际应用lucene框架的朋友,欢迎下载。

    Lucene全文检索引擎

    Lucene是Apache软件基金会的一个开源项目,它是一个高性能、全文本搜索引擎库,可以被集成到各种应用中实现全文检索功能。Lucene提供了完整的搜索功能实现,包括索引创建、文档存储、查询解析和结果排序等。它的设计...

    基于Lucene的搜索引擎

    **基于Lucene的搜索引擎** Lucene是一个开源的全文检索库,由Apache软件基金会开发并维护。它是Java语言实现的,可以被集成到各种应用程序中,为开发者提供了强大的文本搜索功能。在本项目中,我们看到的是一个专门...

    基于LUCENE的搜索引擎的设计与实现源代码

    本文将深入探讨如何使用Apache LUCENE这一强大的全文搜索引擎库,设计并实现一个高效的搜索引擎。LUCENE是一款开源的Java库,它为开发者提供了构建搜索引擎所需的核心功能,包括索引创建、文本分析、查询解析以及...

    Lucene全文搜索_LuceneJava全文搜索_

    在"Lucene全文搜索_LuceneJava全文搜索_"这个主题中,我们将深入探讨Lucene如何在Java环境中实现高效的全文搜索引擎。首先,Lucene的核心概念包括文档(Document)、字段(Field)、索引(Index)和搜索(Search)。...

    基于lucene的搜索引擎regain安装版

    Regain是一个基于Apache Lucene的全文搜索引擎,它提供了高级的搜索功能,能够帮助用户快速、准确地在大量数据中查找所需信息。Lucene是Java语言实现的一个开源信息检索库,为开发人员提供了一个强大的文本分析和...

    ASP.NET基于Ajax+Lucene构建搜索引擎的设计和实现(源代码).rar

    在本项目中,"ASP.NET基于Ajax+Lucene构建搜索引擎的设计和实现"是一个实例,展示了如何将ASP.NET技术与Ajax(异步JavaScript和XML)和Lucene全文搜索引擎库相结合,以创建一个高效、用户友好的搜索功能。...

    Heritrix+lucene开发自己的搜索引擎

    本篇论文旨在探讨如何运用Lucene全文搜索引擎技术,并结合Heritrix网络爬虫工具,构建一个面向高校图书馆的统一搜索引擎平台。 #### Lucene全文搜索引擎概述 Lucene是Apache软件基金会旗下的开源项目之一,它提供了...

    Lucene搜索引擎开发权威经典(附盘源码)【于天恩】.zip

    《Lucene搜索引擎开发权威经典》是由于天恩编著的一本深入探讨Lucene搜索引擎开发的专业书籍,这本书结合源码分析,旨在帮助读者掌握Lucene的核心技术和应用实践。Lucene是Apache软件基金会的一个开放源代码项目,它...

Global site tag (gtag.js) - Google Analytics