码迷,mamicode.com
首页 > Web开发 > 详细

Lucene实现全文检索的流程

时间:2019-05-25 20:17:44      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:标点符号   有一个   一个   索引   通过   执行   数据库   字符串拆分   站内搜索   

本文内容来自恩师

 

以下正文...

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实现全文检索的流程

标签:标点符号   有一个   一个   索引   通过   执行   数据库   字符串拆分   站内搜索   

原文地址:https://www.cnblogs.com/xiaoxiaobaizht/p/10923575.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!