Lucene索引的API非常简单,然而在其简易的API背后,它做了许多有趣的、相对复杂的操作。我们可以明确得将这些操作分为三条:抽取文本(extract text);分析(analysis);索引(index)。
1. 抽取文本并创建文档(document)
在用Lucene索引数据之前,必须先将其抽取为纯文本。第一章的例子中我们索引了扩展名为 .txt 的文件,它们很容易被索引。然而事情并非总是如此简单,如果我们要索引的数据来自PDF文件,或者是XML,又或是Microsoft Word文档,那么,我们必须先从中抽取出纯文本才能够用Lucene对其进行索引。好在事情不算复杂,同为开源框架的Tika可以帮我们高效的完成此项工作。
2. 分析
在为索引文件增加docuemt之前,Lucene会先进行一步操作:分析。分析的目的是将原文数据拆分成若干词元(token),同时进行一些可选操作,如:大小写转换,过滤"停词"等。
3. 索引
经过"分析"后的数据,就可以被索引了。Lucene采用反向索引(inverted index)的结构存储索引数据,反向索引也是现代web搜索引擎的核心。
4. 索引文件
Lucene的索引文件设计的非常精妙,它需要专门的话题来讨论。
分享到:
相关推荐
第一章 Lucene是个倒排索引 第二章 Lucene与数据库 第三章 Lucene的索引建立及文件结构 第四章 Lucene的检索机制及文档得分 第五章 Lucene的存储优化 第六章 Lucene的效率优化 第七章 用Lucene加快web开发!
第二章 索引建立 3 2.1 创建Directory 3 2.2 创建Writer 3 2.3 创建文档并且添加索引 4 2.4 查询索引的基本信息 5 2.5 删除和更新索引 5 (1) 使用writer删除 5 (2) 使用reader删除 5 (3) 恢复删除 5 (4) 彻底删除 6 ...
Eclipse工程/ch2:原书第二章Eclipse工程文件 对文档预处理的源代码 对文档建立索引的源代码 对文档检索的源代码 使用Lucene检索和使用java.lang.String内置方法进行检索的效率比较 安装:直接在Eclipse中选取...
Eclipse工程/ch2:原书第二章Eclipse工程文件 对文档预处理的源代码 对文档建立索引的源代码 对文档检索的源代码 使用Lucene检索和使用java.lang.String内置方法进行检索的效率比较 安装:直接在Eclipse中选取...
第一章:全文检索的基本原理 10一、总论 10二、索引里面究竟存些什么 13三、如何创建索引 14第一步:一些要索引的原文档(Document)。第二步:将原文
Eclipse工程/ch2:原书第二章Eclipse工程文件 对文档预处理的源代码 对文档建立索引的源代码 对文档检索的源代码 使用Lucene检索和使用java.lang.String内置方法进行检索的效率比较 安装:直接在Eclipse中选取...
第一章:全文检索的基本原理 10一、总论 10二、索引里面究竟存些什么 13三、如何创建索引 14第一步:一些要索引的原文档(Document)。第二步:将原文
第二步:将原文档传给分次组件(Tokenizer)。 ................................................................... 14 第三步:将得到的词元(Token)传给语言处理组件(Linguistic Processor)。 .....................
第9章 搜索索引(Lucene+Web Spider) 第10章 在线网上支付(JSP+Swrvlet+JavaBean) 第11章 JavaWeb邮件发送系统(JSP+Servlet+JavaBean) 第12章 网络留言板(JSP+Servlet+JavaBean) 第13章 网络留言板续——...
第9章 搜索索引(Lucene+Web Spider) 第10章 在线网上支付(JSP+Swrvlet+JavaBean) 第11章 JavaWeb邮件发送系统(JSP+Servlet+JavaBean) 第12章 网络留言板(JSP+Servlet+JavaBean) 第13章 网络留言板续——...
Java搜索引擎的研究与实现(含文档+源码) 目录 1 摘要 3 第一章 引言 4 第二章 搜索引擎的结构 5 2.1系统概述 5 2.2搜索引擎的构成 5 2.2.1网络机器人 5 2.2.2索引与搜索 5 2.2.3 Web...
第二章 搜索引擎的结构 5 2.1系统概述 5 2.2搜索引擎的构成 5 2.2.1网络机器人 5 2.2.2索引与搜索 5 2.2.3 Web服务器 6 2.3搜索引擎的主要指标及分析 6 2.4小节 6 第三章 网络机器人 7 3.1什么是网络机器人...
第二部分(第3~4章)首先讲解了如何启用开发模式,然后详细讲解了公众平台的消息接口(包括请求校验、请求消息、事件推送和响应消息)。 第三部分(第5~6章)重点介绍了公众平台的自定义菜单接口和高级接口,并...
第二章 相关技术介绍 5 2.1 J2EE技术 5 2.2 MyEclipse开发环境 5 2.3 Tomcat应用服务器 6 2.4 MySQL数据库 6 2.5 J2EE平台上的框架分析 7 2.5.1框架的引入 7 2.5.2 Struts框架 7 2.5.3 Spring框架 9 2.5.4 Hibernate...
第二章日志检索引擎的选择.............................................................................……12 2.1检索引擎概述................................................................................