Lucene实现全文检索的流程
Posted xiaoxiaobaizht
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Lucene实现全文检索的流程相关的知识,希望对你有一定的参考价值。
本文内容来自恩师
以下正文...
Lucene
1.创建索引
1) 获得文档
原始文档:要基于哪些数据来进行搜索,那这些数据就是原始文档.
搜索引擎:使用爬虫技术获得原始文档.
站内搜索:使用数据库中的数据
本机:直接使用io流读取本地磁盘上的数据
2) 构建文档对象
对应每个原始文档创建一个Document对象
每一个document对象中包含多个域(field)
域中保存的就是原始文档数据
域的名称
域的值
每个文档都有一个唯一的编号,就是文档id
3)分析文档
就是分词的过程
(1)根据空格进行字符串拆分,得到一个单词列表
(2)把单词统一换成小写
(3)去除标点符号
(4)去除停用词(即没有意义的词)
每个关键词都封装到一个Term对象中
Term对象中包含两部分内容
关键词本身所在的域
关键词本身
不同域中拆分出来的相同的关键词是不同的Term.
4) 创建索引
基于关键词列表创建一个索引.保存到索引库中.
索引库中包含的内容:
索引
document对象
关键词和文档的对应关系
通过词语找文档,这种索引的结构叫做倒排索引文档.
2.查询索引
1) 用户查询接口
用户输入查询条件的地方
例:百度的搜索框
2) 把关键词封装成一个查询对象
要查询的域
要搜索的关键字
3) 执行查询
根据要查询的关键词到对应的域上进行的搜索.
找到关键词,根据关键词找到对应的文档
4) 渲染结果
根据文档的id找到文档对象
对关键词进行高亮显示
分页处理
最终展示给用户看
以上是关于Lucene实现全文检索的流程的主要内容,如果未能解决你的问题,请参考以下文章