本文主要面向具体使用,适用于已熟悉java编程的lucene初学者。
1. Lucene的简介

1.1 Lucene 历史

org.apache.lucene包是纯java语言的全文索引检索工具包。
      Lucene的作者是资深的全文索引/检索专家,最开始发布在他本人的主页上,2001年10月贡献给APACHE,成为APACHE基金jakarta的一个子项目。
      目前,lucene广泛用于全文索引/检索的项目中。
      lucene也被翻译成C#版本,目前发展为Lucene.Net(不过最近好象有流产的消息)。

1.2 Lucene 原理

lucene的检索算法属于索引检索,即用空间来换取时间,对需要检索的文件、字符流进行全文索引,在检索的时候对索引进行快速的检索,得到检索位置,这个位置记录检索词出现的文件路径或者某个关键词。
       在使用数据库的项目中,不使用数据库进行检索的原因主要是:数据库在非精确查询的时候使用查询语言“like %keyword%”,对数据库进行查询是对所有记录遍历,并对字段进行“%keyword%”匹配,在数据库的数据庞大以及某个字段存储的数据量庞大的时候,这种遍历是致命的,它需要对所有的记录进行匹配查询。因此,lucene主要适用于文档集的全文检索,以及海量数据库的模糊检索,特别是对数据库的xml或者大数据的字符类型。

2.Lucene的下载和配置

2.1 Lucene的下载

lucene在jakarta项目中的发布主页:http://jakarta.apache.org/lucene/docs/index.html。以下主要针对windows用户,其它用户请在上面的地址中查找相关下载。

lucene的.jar包的下载(包括.jar和一个范例demo):
http://apache.oregonstate.edu/jakarta/lucene/binaries/lucene-1.4-final.zip

lucene的源代码下载:
http://www.signal42.com/mirrors/apache/jakarta/lucene/source/lucene-1.4-final-src.zip

lucene的api地址:http://jakarta.apache.org/lucene/docs/api/index.html

本文使用lucene版本:lucene-1.4-final.jar。

2.2 lucene的配置

首先请确定你的机子已经进行了java使用环境的基本配置,即确保在某个平台下能够运行java源代码,否则请查阅相关文档进行配置。
        接下来进入lucene的配置:
        普通使用者:在环境变量的CLASSPATH中添加lucene的位置。比如:“D:\java \lucene-1.4-final\lucene-1.4-final.jar;”。
       jbuilder使用者:在“Project”--“Project Properties”--“Required Libraries”进行添加。
       Jsp使用者:也可以直接将lucene-1.4-final.jar文件放到\WEB-INF\classes下。

3. Lucene 的范例(Demo )

3.1 Demo说明

可以得到的Demo包括:lucene-demos-1.4-final、XMLIndexingDemo,lucene-demos-1.4-final中包括对普通文件和html文件的两种索引,XMLIndexingDemo针对xml文件的索引。他们的区别主要在于:对普通文件进行索引时只要对文件的全文进行索引,而针对html、xml文件时,对标签类型不能进行索引,在实现上:html、xml的索引需要额外的数据流分析器,以分析哪些内容有用哪些无用。因此,在后两者实现上,索引的时间额外开支,甚至超过索引本身时间,而检索时间没有区别。

以上Demo中,lucene-demos-1.4-final自带于lucene-1.4-final.zip中,XMLIndexingDemo的下载地址:
http://cvs.apache.org/viewcvs.cgi/jakarta-lucene-sandbox/contributions/XML-Indexing-Demo/

3.2 Demo的运行

首先将demo.jar的路径添加如环境变量的CLASSPATH中,例如:“D:\java\lucene-1.4-final\lucene-demos-1.4-final.jar;”,同时确保已经添加lucene-1.4-final.jar。

然后进行文件的全文索引,在dos控制台中,输入命令“java org.apache.lucene.demo.IndexFiles {full-path-to-lucene}/src”,后面的路径为所要进行索引的文件夹,例如:“java org.apache.lucene.demo.IndexFiles c:\test”。

接着对索引进行检索,敲入“java org.apache.lucene.demo.SearchFiles”,在提示“Query:”后输入检索词,程序将进行检索列出检索得到的结果(检索词出现的文件路径)。
 
       其他Demo的运行请参考\docs\demo.html。
       在运行Demo后请阅读Demo的源代码以便深入学习。

转载于:https://www.cnblogs.com/xiaoqiao/archive/2005/05/12/154231.html

Lucene入门与使用(一) [转]相关推荐

  1. Lucene入门程序

    Lucene入门程序 环境搭建 创建一个Java工程 导入jar包 lucene-core-7.4.0.jar lucene-analyzers-common-7.4.0.jar commons-io ...

  2. 阿翔编程学-Lucene入门与使用

    Lucene入门与使用 本文主要面向具体使用,适用于已熟悉java编程的lucene初学者. 1. Lucene的简介 1.1 Lucene 历史 org.apache.lucene包是纯java语言 ...

  3. 开发自己的搜索引擎读书笔记——搜索引擎与信息检索、Lucene入门

    这部分是在读<开发自己的搜索引擎>第二版,邱哲.符滔滔.王学松编著,人民邮电出版社,的随手笔记与猜想.若有不足之处还请不吝赐教,以不断完善之. 搜索引擎与信息检索 信息检索的过程: 构建文 ...

  4. 全文检索工具 Lucene 入门

    最近在了解 Halo 博客后端源码,而全文检索是 Halo 做的比较差的一块内容,仅通过数据库的模糊查询来实现文章检索.对于搜索引擎之前了解的也不多,所以开始入门 Lucene 检索引擎,如果可以的话 ...

  5. Lucene入门及操作详解

    1 什么是全文检索 1.1 数据分类 我们生活中的数据总体分为两种:结构化数据和非结构化数据. 结构化数据:指具有固定格式或有限长度的数据,如数据库,元数据等. 非结构化数据:指不定长或无固定格式的数 ...

  6. Lucene入门的基本知识(四)

    刚才在写创建索引和搜索类的时候发现非常多类的概念还不是非常清楚,这里我总结了一下. 1 lucene简单介绍 1.1 什么是lucene  Lucene是一个全文搜索框架,而不是应用产品.因此它并不像 ...

  7. Lucene入门教程

    Lucene教程 1 lucene简介 1.1 什么是lucene     Lucene是一个全文搜索框架,而不是应用产品.因此它并不像www.baidu.com 或者google Desktop那么 ...

  8. lucene 入门整理

    2019独角兽企业重金招聘Python工程师标准>>> 1.    概述 Lucene是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎.Lucene以其方便使用.快速实施以及 ...

  9. Lucene入门教程及java实现

    一.前言 Lucene 是 apache 软件基金会的一个子项目,由 Doug Cutting 开发,是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的库,提 ...

最新文章

  1. TLU-Net:表面缺陷自动检测的深度学习方法
  2. XMPPFramework导入
  3. 光子浏览器_烟台招聘信息烟台光子信息科技有限公司招聘(五险一金,餐补)...
  4. e生保等待期什么意思_平安e生保等待期是90天 保险90天等待期是什么
  5. 优盘文件或目录损坏且无法读取怎样解决
  6. 软件工程——软件的系统设计
  7. 靠五、六流人才铸造的18万华为铁军
  8. Unity按钮按下、抬起的反应
  9. 艾美捷胆固醇肉豆蔻酸酯说明书和相关研究
  10. 七牛云 Java Web上传图片
  11. 【Python】Windows下安装Dpark
  12. Android10.0,计步传感器(Sensor.TYPE_STEP_COUNTER) 无法计步
  13. 19日病毒提醒:QQ/网银/江湖最凶险!(转)
  14. StringTokenizer的用法详解
  15. HR 必须了解的绩效考核
  16. 从单张图重建三维人体模型综述(三)
  17. Android 多国语言转换 Excel 和 Excel 转换为 string
  18. 如何用opencv绘制点
  19. 女生学计算机求职意向,计算机专业的求职意向怎么写
  20. c语言循环语句找最小值,c语言怎样找无限循环小数的循环体

热门文章

  1. phpstrom php cli,在docker中的PhpStorm 2017.1远程php-cli:配置php.ini文件不存在
  2. SM4国密标准 GB/T 32907-2016
  3. NIOS II 常见问题总结FAQ - xiangyuqxq的专栏 - CSDN博客
  4. [转]详解Flex布局(语法+教程)
  5. Kubernetes支持有状态服务的部署
  6. Unity使用自定义资源(.asset)配置数据
  7. Phonegap VS AppCan
  8. 知名网游Server端架构分析
  9. python怎么把变量付给数组_使用Python将数组的元素导出到变量中(unpacking)
  10. excel中去掉换行符的快捷键