最新要闻
- 世界观点:4月10日11时浙江嘉兴疫情最新消息 4月10日11时浙江嘉兴今日确诊人数
- 每日快播:米家空调巨省电首销:2匹大风量 2799元
- 环球热点!小米MIJIA智能音频眼镜发布!独特耳机眼镜二合一设计
- 世界热推荐:新手爸爸拿狗狗练拍嗝 网友:狗狗从来没享受过这么高的待遇
- 环球观察:周杰伦就不正当竞争起诉网易!4月17日开庭
- 日本非现金支付比例仅占36% 远落后于中国农村
- 重磅来了!
- 一季报预览:哪些公司业绩有望超预期
- 全球快看点丨迪拜拍出世界最贵车牌号:价值超1亿元!
- 各地开通旅游专列:去淄博吃烧烤都有专列了
- 环球今亮点!米粉催卢伟冰发小米13 Ultra:我想冲顶配版
- 丰田在日召回超20万辆汽车:发动机有火灾隐患 已烧了两辆
- 世界观焦点:整合Microsoft 365服务:Win11文件管理器将迎来大更新
- 环球今日讯!围挡后面丨长沙河西首个三甲妇幼医院住院楼封顶!预计2025年建成投用
- 【天天新要闻】还去吗?泰国清迈发布“居家办公令” PM2.5超标准5倍:游客因空气污染锐减
- “数学之王”丘成桐AI人工智能投入不能急功近利:中国很多技术卡脖子 基础科学没做好
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
【环球新要闻】全文索引:Apache Lucene(二)
上一章我们讲述了Apache Lucene实现的核心代码,今天我们来梳理一下Lucene的相关概念以及Lucene索引。
工欲善其事,必先利其器。Java常用的全文搜索引擎框架,通常是下面4个框架:
(资料图片)
为什么是Lucene呢?原因很简单,hibernate search、solr、elasticsearch 都是基于 lucene 拓展出来的搜索引擎。
Hibernate Search 是在 apache Lucene 的基础上建立的主要用于 Hibernate 的持久化模型的全文检索工具。
Elasticsearch 也使用 Java 开发并使用 Lucene 作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的 RESTful API 来隐藏 Lucene 的复杂性,从而让全文搜索变得简单。
Solr 它是一种开放源码的、基于 Lucene Java 的搜索服务器,易于加入到 Web 应用程序中。提供了层面搜索(就是统计)、命中醒目显示并且支持多种输出格式(包括 XML/XSLT 和 JSON 等格式)。
相关概念
既然是全文搜索工具,肯定有一定的排序结构和规则。当我们输入关键字的时候,lucene 能安装内部的层次结构快速检索出我需要的内容。这里面会涉及几个层次和概念。
索引库(Index)
一个目录一个索引库,同一文件夹中的所有的文件构成一个 Lucene 索引库。类似数据库的表的概念。
段(Segment)
Lucene 索引可能由多个子索引组成,这些子索引称为段。每一段都是完整独立的索引,能被搜索。
文档(Document)
一个索引可以包含多个段,段与段之间是独立的,添加新文档可以生成新的段,不同的段可以合并。段是索引数据存储的单元。类似数据库内的行或者文档数据库内的文档的概念。
域(Field)
一篇文档包含不同类型的信息,可以分开索引,比如标题,时间,正文,作者等。类似于数据库表中的字段。
词(Term)
词是索引的最小单位,是经过词法分析和语言处理后的字符串。一个Field由一个或多个Term组成。比如标题内容是“hello lucene”,经过分词之后就是“hello”,“lucene”,这两个单词就是Term的内容信息,当关键字搜索“hello”或者“lucene”的时候这个标题就会被搜索出来。
分词器(Analyzer)
一段有意义的文字需要通过Analyzer来分割成一个个词语后才能按关键词搜索。StandartdAnalyzer是Lucene中常用的分析器,中文分词有CJKAnalyzer、SmartChinieseAnalyzer等。
上图大概可以这样理解,索引内部由多个段组成,当新文档添加进来时候会生成新的段,不同的段之间可以合并(Segment-0、Segment-1、Segment-2合并成Segment-4),段内含有文档号与文档的索引信息。而每个文档内有多个域可以进行索引,每个域可以指定不同类型(StringField,TextField)。
所以,从图中可以看出,lucene的层次结构依次如下:索引(Index) –> 段(segment) –> 文档(Document) –> 域(Field) –> 词(Term)。
在上面我们了解了 lucene 的一些基本概念,接下来我们进入原理分析的环节。
(为什么 lucene 搜索引擎查询这么快?)
倒排索引
我们都知道要想提高检索速度要建立索引,重点就在这里,lucene使用了倒排索引(也叫反向索引)的结构。
倒排索引(反向索引)自然就有正排索引(正向索引)。
正排索引是指从文档检索出单词,正常查询的话我们都是从文档里面去检索有没这个关键字单词。
倒排索引是指从单词检索出文档,与从正排索引是倒过来的概念,需要预先为文档准备关键字,然后查询时候直接匹配关键字得到对应的文档。
有一句这样的总结:由于不是由记录来确定属性值,而是由属性值来确定记录的位置,因而称为倒排索引(inverted index)。
假如现在有两个文档,内容分别是:
文档1:home sales rise in July.
文档2:increase in home sales in July.
分析上图可知,首先文档经过分词器(Analyzer)分词之后,我们可以得到词(term),词和文档ID是对应起来的,接下来这些词集进行一次排序,然后合并相同的词并统计出现频率,以及记录出现的文档ID。
所以:
实现时,lucene将上面三列分别作为词典文件(Term Dictionary)、频率文件(frequencies)、位置文件 (positions)保存。其中词典文件不仅保存有每个关键词,还保留了指向频率文件和位置文件的指针,通过指针可以找到该关键字的频率信息和位置信息。
索引时,假设要查询单词 “sales”,lucene先对词典二元查找、找到该词,通过指向频率文件的指针读出所有文章号,然后返回结果。词典通常非常小,因而,整个过程的时间是毫秒级的。
构建索引与查询索引过程
检索文件之前先要建立索引,所以上图得从“待检索文件”节点开始看。
构建索引过程:
1、为每一个待检索的文件构建Document类对象,将文件中各部分内容作为Field类对象。
2、使用Analyzer类实现对文档中的自然语言文本进行分词处理,并使用IndexWriter类构建索引。
3、使用FSDirectory类设定索引存储的方式和位置,实现索引的存储。
检索索引过程:
4、使用IndexReader类读取索引。
5、使用Term类表示用户所查找的关键字以及关键字所在的字段,使用QueryParser类表示用户的查询条件。
6、使用IndexSearcher类检索索引,返回符合查询条件的Document类对象
其中虚线指向的是这个类所在的包名(packege)。如Analyzer在org.apache.lucene.analysis包下。
总结
倒排序索引的原理就如同查字典。要先查目录,得到数据对应的页码,在直接翻到指定的页码。不是在文章中找词,而是从目录中找词所在的文章。
参考链接
关键词:
-
Selenium做Web自动化踩过的坑
1 无法定位到元素 定位元素超时(selenium common exceptions NoSuchElementException:Message:nosuchelement:Unable
来源: -
世界观点:4月10日11时浙江嘉兴疫情最新消息 4月10日11时浙江嘉兴今日确诊人数
1、新增本土:3;2、新增无症状:0;3、现有确诊:15;4、累计确诊:193;5、累计治愈:178;6、累计死亡:0;
来源: 【环球新要闻】全文索引:Apache Lucene(二)
Selenium做Web自动化踩过的坑
每日聚焦:通俗解释 JVM CAS 机制
世界观点:4月10日11时浙江嘉兴疫情最新消息 4月10日11时浙江嘉兴今日确诊人数
每日快播:米家空调巨省电首销:2匹大风量 2799元
环球热点!小米MIJIA智能音频眼镜发布!独特耳机眼镜二合一设计
世界热推荐:新手爸爸拿狗狗练拍嗝 网友:狗狗从来没享受过这么高的待遇
环球观察:周杰伦就不正当竞争起诉网易!4月17日开庭
日本非现金支付比例仅占36% 远落后于中国农村
重磅来了!
介绍一下sourcemap
今日关注:全网最详细中英文ChatGPT-GPT-4示例文档-文章大纲智能生成器从0到1快速入门——官网推荐的48种最佳应用场景(附python/node.js
一季报预览:哪些公司业绩有望超预期
全球快看点丨迪拜拍出世界最贵车牌号:价值超1亿元!
各地开通旅游专列:去淄博吃烧烤都有专列了
环球今亮点!米粉催卢伟冰发小米13 Ultra:我想冲顶配版
丰田在日召回超20万辆汽车:发动机有火灾隐患 已烧了两辆
世界观焦点:整合Microsoft 365服务:Win11文件管理器将迎来大更新
如何部署VSCODE SERVER
Silverlight教程_编程入门自学教程_菜鸟教程-免费教程分享
环球今日讯!围挡后面丨长沙河西首个三甲妇幼医院住院楼封顶!预计2025年建成投用
【天天新要闻】还去吗?泰国清迈发布“居家办公令” PM2.5超标准5倍:游客因空气污染锐减
“数学之王”丘成桐AI人工智能投入不能急功近利:中国很多技术卡脖子 基础科学没做好
元宇宙崩盘 林俊杰疑回应炒虚拟地产亏91%:听说很多人想帮我理财
北方大范围沙尘又来了 今年的沙尘天气为啥显得格外多?
天天观速讯丨通过 lua 进行 nginx redis 访问控制
焦点热议:多项数据向好 交通物流加速“跑起来”
环球要闻:背景太假哥疆域阿力木捡的狗“狼里狼气” 网友出谋划策辨认
【环球新视野】极氪X官宣4月12日上市:全能SUV 零百加速3秒级
焦点热文:我国构建世界首个番茄超泛基因组:能让番茄更好吃、产量多6成
全球播报:男女配合当街开井盖用勺挖地沟油被网友拍下引围观:行为太恶劣 应严惩
天天微资讯!林俊杰“炒房”浮亏91%?元宇宙泡沫的冰山一角
【时快讯】学系统集成项目管理工程师(中项)系列05_配置管理
天天动态:一不注意就被坑,家电“潜规则”早知道早好
今日热文:Spring5课堂笔记
Java8 Stream流式编程
【新要闻】128核心Arm处理器能跑Windows!还能配NVIDIA显卡
时讯:新疆和硕:田间地头 话两会
maptalks点线面图形样式设置经验总结
【天天速看料】马龙惊魂3-2拒绝一轮游,与小林再迎老少对决!国乒首日狂走钢丝
在米其林餐厅找罪受?人均8千元餐厅疑发生食物中毒
世界热点!张艺谋宣布将拍网剧《英雄联盟》!第一次 想拍个不一样的
环球新动态:Vulnhub Mercy靶场 Walkthrough
FSR、DLSS谁更好?26款游戏PK:AMD居然0胜!
环球速看:AI 史话
每日讯息!Weex原理及架构剖析
旅游专列来啦具体详细内容是什么
中国新能源汽车在欧洲火了:每10辆就有1辆来自中国
【时快讯】WebKit三件套(3):WebKit之Port篇
每日速看!HBase在进行模型设计时重点在什么地方?一张表中定义多少个Column Family最合适?为什么?
环球资讯:第136篇:Three.js基础入门动画API:setInterval 与 requestAnimationFrame的区别
程序员午休时健身猝死 被认定工伤 法院:属于在岗状态
比亚迪车主用木头手工还原汉EV:前后双电机 真能跑
每日速讯:WebKit三件套(1):WebKit之WebCore篇
焦点关注:C盘爆满的解决方法,不用删除文件,使用分区助手无损增加内存
简讯:招标活动法律保障工作实务指南 2016年版
锐龙7 7800X3D配A620主板 性能损失多少?实在没想到
天天微头条丨成都升温 千足虫满街爬:专家科普小心毒臭液
全球最大盗版电子书网站Z-Library被封后复活:路子更野了!要共享纸质书
速读:Steam排名第一!GTX 1650亮机卡火爆断货:RTX 2070紧急变身救场
【天天速看料】Vue——patch.ts【十四】
浏览器史话中chrome霸主地位的奠定与国产浏览器的割据混战
Vue开发规范
天天速递!只剩Windows版了!B站正式宣布UWP版停止维护
环球时讯:洛阳上演汉服秀 网友偶遇唐僧师徒四人坐地铁去“取经”
男子体内惊现小树苗!都长到5厘米高了
环球今亮点!或为AR眼镜新品!小米神秘“新礼物”明早10点正式亮相
今热点:解放军环台岛战备警巡和演习,专家:或成惩戒“台独”新模式
天天通讯!Linux常用操作命令总结
iOS Modern Collection View
线段树好题! P2824 [HEOI2016/TJOI2016]排序 题解
每日动态!小米寄修服务“史诗级”提升:新增进度可视化功能
天天资讯:第7章_InnoDB数据存储结构
天天快报!css过去及未来展望—分析css演进及排版布局的考量
每日关注!微信小程序 开发,uni-app 开发简介
今日报丨朗新科技:拟提前赎回“朗新转债”
今日观点!男子网购耐克鞋却挂着李宁的吊牌 网友:联名款?
数组的算法
超同年漫威大片近3倍!新海诚《铃芽之旅》国内票房达7亿
VUE-Antd开发,validate规则校验第一次为空,后面无论怎么输入都显示不可为空
环球新消息丨上海国创科技产业创新发展中心理事长黄岩:人工智能会像手机一样进入我们的日常生活
每日聚焦:青春回来了!电影《灌篮高手》流川枫角色预告出炉:4月20日国内上映
世界今亮点!暴雪战网遭遇DOSS攻击!多款游戏无法正常登录
世界聚焦:2023年3月随笔暨第1季度总结
世界热资讯!ASP.NET Core MVC 从入门到精通之接化发(一)
【全球聚看点】快速幂算法
私有化部署chatGPT,告别网络困扰
新车一超过60km/h就耳朵疼 车主:找了20多个人开都如此
Win11新版最快5月推送:微软确认Moment 3更新
【全球热闻】富二代开保时捷碰瓷:专挑开豪车酒驾的敲诈 “赚了”30多万
聚焦:五粮液董事长曾从钦:在“时与势”中勇担使命,在“稳与进”中拓展空间,在“个与众”中升级维度
今年1号台风“珊瑚”下周或生成 预计2023年登陆我国的台风至少6个
夏日必备!楠木之舟EVA拖鞋19.9元:轻盈高回弹
男士洗脸专属大牌 妮维雅控油、祛痘洗面奶大促:不到20
世界最新:ChatGPT火爆 元宇宙房产崩盘!林俊杰买虚拟地产浮亏91%
岚图汽车1V4 “开火”保时捷、蔚来、奥迪、极氪!结果尴尬:无一车企回应
环球实时:4月09日10时江苏南通疫情最新消息 4月09日10时江苏南通今日确诊人数
让民生福祉更有“数”——中国电子政务论坛聚焦数字政府建设
【天天播资讯】为啥国产电动车在欧洲不好卖?海外汽车大V给出5点原因
环球热讯:今天国际护胃日 年轻人为啥会被胃癌盯上?胃病转向胃癌有5个信号