lucene 入门简介
Lucene 是一个基于 Java 的全文信息检索工具包,它不是一个完整的搜索应用程序,而是为你的应用程序提供索引和搜索功能。Lucene 目前是 Apache Jakarta 家族中的一个开源项目。也是目前最为流行的基于 Java 开源全文检索工具包。
下图描述了全文检索的流程(来源《Lucene in action》):
全文检索大体分两个过程:索引创建和搜索索引
●索引创建(indexing):将现实世界中所有的结构化和非结构化数据提取信息,创建索引的过程。
●搜索索引(search):就是得到用户的查询请求,搜索创建的索引,然后返回结果的过程。
https://blog.csdn.net/liuhaiabc/article/details/52346493 中全文检索理论个人感觉写的非常好,借用总结:
1. 索引过程:
1) 有一系列被索引文件
2) 被索引文件经过语法分析和语言处理形成一系列词(Term) 。
3) 经过索引创建形成词典和反向索引表。
4) 通过索引存储将索引写入硬盘。
2. 搜索过程:
a) 用户输入查询语句。
b) 对查询语句经过语法分析和语言分析得到一系列词(Term) 。
c) 通过语法分析得到一个查询树。
d) 通过索引存储将索引读入到内存。
e) 利用查询树搜索索引,从而得到每个词(Term) 的文档链表,对文档链表进行交,差,并得到结果文档。
f) 将搜索到的结果文档对查询的相关性进行排序。
g) 返回查询结果给用户