7) 第二章 索引:理解Lucene索引过程
?
? ? 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的索引文件设计的非常精妙,它需要专门的话题来讨论。
?
?
?