首页 > 其他分享 >Lucene-7.4.0简要介绍和初学者快速上手

Lucene-7.4.0简要介绍和初学者快速上手

时间:2024-07-08 14:19:18浏览次数:9  
标签:倒排 关键词 Lucene 索引 初学者 7.4 正排 文本

通过一个自建的索引案例,分几篇记录Lucene使用中的心得和存在的问题。

本文的目的是能让初学者快速学会Lucene的使用,所以所涉及的原理都会十分粗浅,而不讨论更深层次的实现过程。

一、什么是Lucene

首先看一下摘自百度百科的定义:“Lucene是一套用于全文检索和搜寻的开源程式库,由Apache软件基金会支持和提供。”我们因此可以得知Lucene是一个开源程式库,用于建立索引并通过建立好的索引进行查询,得到相应的结果。

 二、Lucene与倒排索引

首先需要理解是的倒排索引,与倒排索引相对应的是正排索引。

正排索引

假设现在我们有m篇文档,在m篇文档中一共有n个关键词。此时我们可以将m篇文档看做是key,而n个关键词看做是value。正排索引就是通过key来找到value的过程。

结合图片来讲,针对m个文本,可以得知每个文本里面所包含的关键词,我们输入文本的序号,得到文本中关键词的过程就叫做正排索引。

倒排索引 

而倒排索引则相反,假设我们已知m个文本,以及每个文本中包含的n个关键词的相关信息。此时,我们输入关键词,得到包含这个关键词的文本的过程就叫做倒排索引。如果说正排索引是从整体中提取出局部,那么倒排索引就是从局部反推出整体的过程。(这种说法并不严谨,但是便于理解。)

三、Lucene的实例讲解

下面用一个实例来简单说明如何使用Lucene来建立索引并进行查询。

1.任务目标:

现有若干个文本,要求输入关键字,返回包含关键字的句子,这个句子所属的文本以及这个句子所处的位置是摘要部分还是正文部分。

2.任务分解:

1.对文本进行解构,将文本的文件名、摘要、正文部分的内容分别放进不同的字符串或列表里

2.针对文件名、摘要、正文等信息分别建立域(Field),保存到索引文档中

3.调用索引,输入关键字,返回包含关键词的句子、句子的所属部分和句子的所属文本

 Lucene的实现过程如图:

3.代码实现:

 

标签:倒排,关键词,Lucene,索引,初学者,7.4,正排,文本
From: https://www.cnblogs.com/william91877/p/15170083.html

相关文章

  • RedHat7.4—配置与管理iptables防火墙
    假如某公司需要Internet接入.采用iptables作为NAT服务器接入网络,为确保安全需要配置防火墙功能,要求内部仅能够访问Web、DNS及Mail三台服务器;1、内网通过防火墙访问外网1.1、配置主机网络内部Web服务器通过端口映象方式对外提供服务。内网服务器地址网卡1IP设为192.168.100.1......
  • RedHat7.4—配置常规网络
    配置主机名把主机名修改为hyborn方法一、使用nmtui修改主机名需要管理员权限运行su-root输入root密码后进入管理员模式运行nmtui通过上下左右选择菜单栏回车选择,进入设置系统名即可设置确定后退出      运行hostnamectlstatus命令查看主机名,查看到的主机名,即......
  • RedHat7.4—配置远程管理Linux服务器
    公司的Linux服务器需24小时不间断工作,维护工程师希望通过设置能远程管理和维护服务器。要求通过SSH及VNC远程管理,实现如下配置需求:可以通过SSH服务访问远程主机,可以使用证书登录远程主机,不需要输入远程主机的用户名和密码可以使用VNC服务访问远程主机,使用图形界面访问,桌面端口......
  • C++初学者指南-4.诊断---用gdb调试
    C++初学者指南-4.诊断—用gdb调试幻灯片gdb/前端gdbGNU的命令行调试器cgdb基于终端的gdb前端Linux安装:sudoapt-getinstallcgdbgdbgui基于浏览器的gdb前端网址:https://gdbgui.com/安装:sudopipinstallgdbguiQtCreator可以连接gdbVisualStudioCode可以连接gdbV......
  • C++初学者指南-3.自定义类型(第一部分)-异常
    C++初学者指南-3.自定义类型(第一部分)-异常文章目录C++初学者指南-3.自定义类型(第一部分)-异常简介什么是异常?第一个示例用途:报告违反规则的行为异常的替代方案标准库异常处理问题和保证资源泄露使用RAII避免内存泄漏!析构函数:不要让异常逃脱!异常保证无抛出异常保......
  • Cocos 7.2~7.4
    这几天没更新CSDN,跑去玩Cocos了。自从知道我的粉丝百分之十之八九都是假人,更新确实没什么动力了。主要还是把这边当成一个日记本吧。选择cocos的原因也很简单。会点js,技术栈比较接近,上手估计也快。简单记录下这几天的内容主要完成了三个小游戏,按照Bilibili的siki老师的教程......
  • 初学者指南:如何选择嵌入式Linux和单片机(MCU)
    前言在嵌入式系统开发领域,选择合适的平台是项目成功的关键之一。对于初学者来说,如何在嵌入式Linux和单片机(MCU)之间做出选择可能是一项艰巨的任务。本文将详细解释这两种平台的特点、优缺点,以及在不同应用场景中的适用性,帮助初学者做出明智的选择。嵌入式Linux简介概述嵌入......
  • Python初学者必须掌握的基础知识点
    1.数据类型和变量1.1缩进和注释的规则Python使用缩进来表示代码块,通常使用四个空格或一个制表符。注释使用#开头。#这是一个注释ifTrue:print("Hello,World!")#这是另一个注释1.2基本数据类型Python支持多种基本数据类型,包括整数、浮点数、......
  • 7.4
    1005.K次取反后最大化的数组和题意描述:[!NOTE]给你一个整数数组nums和一个整数k,按以下方法修改该数组:选择某个下标i并将nums[i]替换为-nums[i]。重复这个过程恰好k次。可以多次选择同一个下标i。以这种方式修改数组后,返回数组可能的最大和。示例1:输入......
  • 2024.7.4
    2024.7.4【又苦又甜,也挺好嘛,很像生活】Thursday五月廿九<theme=oi-"graphtheory">P2865[USACO06NOV]RoadblocksG主要就是求一个严格次短路,但是有一定条件,道路可以连续走我们先求解出最短路,基于“次短路与最短路一定只有一条边不同”我们对起点和终点都做一次......