Lucene实现全文检索的流程

news/2024/7/19 11:39:11 标签: 数据库, 爬虫

本文内容来自恩师

 

以下正文...

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找到文档对象

      对关键词进行高亮显示

      分页处理

      最终展示给用户看

转载于:https://www.cnblogs.com/xiaoxiaobaizht/p/10923575.html


http://www.niftyadmin.cn/n/1087988.html

相关文章

367. Valid Perfect Square

原题链接:https://leetcode.com/problems/valid-perfect-square/description/ 实现如下: /*** Created by clearbug on 2018/2/26.*/ public class Solution {public static void main(String[] args) {Solution s new Solution();System.out.println((…

阿甘学java视频--运算符,表达式,流程控制

视频信息: 时长:1小时26分57秒 作者:于盼盼 讲义PPT及源码分享地址:http://user.qzone.qq.com/335816866/2 内容:java流程控制,分支语句(if..…

进大厂必问的高频java高级面试题的总结

1,为什么要用redis,redis集群怎么做的,redis如何实现负载均衡,Redis雪崩、穿透、热点key等优化 用redis目的很简单,快,基于内存的,比读盘速度快出不止一个量级;其次设计上减轻后台压力,而且相比其他nosql产品,支持更多的数据类型,可以持久化,而且在某些场景下可以当…

RocketMQ(五):namesrv初探

匠心零度 转载请注明原创出处,谢谢! RocketMQ网络部署图 NameServer:在系统中是做命名服务,更新和发现 broker服务。Broker-Master:broker 消息主机服务器。Broker-Slave: broker 消息从机服务器。Producer…

spring及springmvc相关面试题

1.为什么使用Spring? 1).方便解耦,简化开发 通过Spring提供的IoC容器,可以将对象之间的依赖关系交由Spring进行控制,避免硬编码所造成的过度程序耦合。 2).AOP编程的支持 通过Spring提供的AOP功能,方便进行面向切面的编程&am…

绝望

<!DOCTYPE html><!--声明 html --><html> <head> <!--定义网页中的一些基本的信息--> <meta charset"UTF-8"> <!--charset 编码字符集--> <!--UTF-8 万国码 …

[T-ARA][Day by Day]

歌词来源&#xff1a;http://music.163.com/#/song?id22704409 作曲 : 金泰贤/赵英秀 [作曲 : 金泰贤/赵英秀] [作曲 : 金泰贤/赵英秀] 作词 : 金泰贤/赵英秀/安英民/K-Smith [作词 : 金泰贤/赵英秀/安英民/K-Smith] [作词 : 金泰贤/赵英秀/安英民/K-Smith] 내품은 너에게 피난…

Windows如何安装Android SDK

我们都知道App测试分为Android和IOS两种客户端&#xff0c;当我们测试Android版本的App的时候经常要安装Android环境&#xff0c;那么安装Android SDK 就是必不可少的&#xff0c;接下来我们就来看看如何安装Android SDK。一、软件下载&#xff1a;大家从网盘中下载adt-bundle-…