1.Lucene概述
Lucene 是 apache 下的一个开放源代码的全文检索引擎工具包,提供了完整的查询引擎和索引引擎,部分文本分析引擎;(自行百度)
1.1Lucene 实现全文检索的流程
1.2创建文档对象
获取原始内容的目的是为了建索引,在建索引前,我们将原始内容创建成文档对象,文档对象中,是由一个个域组成。
域是<k,v>形式,由域名和域值组成。
一个document对象是由一个或多个域组成。
1.3分析文档
我们在将原始内容创建成一个包含域的文档对象之后,需要在对域中的内容进行分析,这也就是在对原始内容提取单词。
提取的单词,我们叫Term,Term也包含两块,域名和单词的内容。
Field 域的属性:
是否分析: 是否对域的内容进行分词处理;
是否索引: 将 Field 分析后的词或整个 Field 值进行索引,只有建立索引,才能搜索到;
是否存储: 存储在文档中的 Field 才可以从 Document 中获取;
1.4创建索引
对所有文档分析得出的语汇单元进行索引,索引的目的是为了搜索,最终要实现只搜索被索引的语汇单元从而找到 Document;
这种索引的结构叫倒排索引结构;
传统方法是根据文件找到该文件的内容,在文件内容中匹配搜索关键字,这种方法是顺序扫描方法,数据量大,搜索慢;
倒排索引结构是根据内容(词语)找文档; 顺序扫描方法是根据文档查找里面的内容;