首页 > Web开发 > 详细

02.Lucene实现全文检索

时间:2017-02-28 13:17:31      阅读:163      评论:0      收藏:0      [点我收藏+]

Lucene介绍

Lucene是apache下的一个开放源代码的全文检索引擎工具包。提供了完整的查询引擎和索引引擎,部分文本分析引擎。Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能。

依赖配置

Lucene是开发全文检索功能的工具包,从官方网站(http://lucene.apache.org/ )下载Lucene4.10.3,并解压得到开发包。

常用核心包

  • lucene-core-4.10.3.jar
  • lucene-analyzers-common-4.10.3.jar
  • lucene-queryparser-4.10.3.jar

Lucene的工作原理

技术分享
创建索引的过程

  • 原始文档
    • 它是用户需要查询的数据,可以使数据库中结构化的数据,也可以是一些非结构化的文档
  • 获得文档
    • 对于硬盘上的文本文件,可以通过流的方式来获得文档的内容;对于pdf、doc、xls等文件可通过第三方提供的解析工具读取文件内容,比如Apache POI读取doc和xls的文件内容;互联网上的内容需要通过爬虫来获得,还有数据库中的结构化数据可以通过一般的方式获取
  • 构建文本对象
    • 该文本对象是对需要建立索引数据的一个抽象,可以往这个文本对象中添加很多的Field,最终这个文本对象会被持久化保存在索引库中
  • 分析文档
    • 分析文档所做的事情就是分词,根据分词来建立一个和Field对应索引
  • 创建索引
    • 顾名思义,创建索引就是根据分词结果建立索引并写入索引库的过程
  • 索引库
    • 索引库是文本对象持久化和索引保存的一个文件,也可以是一个内存索引库

查询索引的过程

  • 创建查询
    • 查询包含精确查询以及分词后查询,还有多种查询结果的一个组合
  • 执行查询
    • 创建查询的到的查询结果只是文本对象Document在索引库中的一个ID,还要根据这个ID来执行查询获得完整的文本对象
  • 渲染结果
    • 渲染结果并不是Lucene应该做的,而是View视图层应该考虑的事情

技术分享

02.Lucene实现全文检索

原文:http://www.cnblogs.com/wesly186/p/8e30ae6f99b09d1bc688b4ffc534d507.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!