首页 > 其他分享 >es倒序索引原理

es倒序索引原理

时间:2023-10-05 10:32:57浏览次数:26  
标签:brown Doc fox 索引 搜索 分词器 quick 倒序 es

3. 倒排索引原理:

(1). 两个document:

  • The quick brown fox jumped over the lazy dog
  • Quick brown foxes leap over lazy dogs in summer

(2). 提取文档分词,建立倒排索引(区分了大小写):

Term      Doc_1  Doc_2
-------------------------
Quick   |       |  X
The     |   X   |
brown   |   X   |  X
dog     |   X   |
dogs    |       |  X
fox     |   X   |
foxes   |       |  X
in      |       |  X
jumped  |   X   |
lazy    |   X   |  X
leap    |       |  X
over    |   X   |  X
quick   |   X   |
summer  |       |  X
the     |   X   |

(3). 搜索含有quick或brown的文档:

Term      Doc_1  Doc_2
------------------------
brown   |   X   |  X
quick   |   X   |
------------------------
Total   |   2   |  1
  • Doc_1中含有两个单词,对于搜索的匹配度要高于Doc_2.
  • 根据搜索的匹配度,计算相关度分数时,Doc_1的匹配度高,分数会比Doc_2高.
  • 因此,分数高就会排在前面.

(4). 问题:

  • Quick和quick以独立的词条出现,但用户搜索的时候,可能认为它们是相同的词(不区分大小写).
  • fox和foxes、dog和dogs都是非常相似词根.
  • jumped和leap是同义词(相关的).
  • 要搜索含有Quick和fox的文档是搜索不到的(是区分大小写的).
  • 这样的倒序索引意义不大.

4. 标准化规则(normalization):

建立倒排索引的时,会对拆分出的各个单词进行相应的处理(即做了标准化规则),以提升相关联的文档的概率.

Term      Doc_1  Doc_2
-----------------------
brown   |   X   |  X
dog     |   X   |  X
fox     |   X   |  X
in      |       |  X
jump    |   X   |  X
lazy    |   X   |  X
over    |   X   |  X
quick   |   X   |  X
summer  |       |  X
the     |   X   |  X
  • 使用标准化规则处理的最终结果.
  • 将不区分大小写、fox单复数、同义词合并为一个单词.
  • 提高了用户搜索的概率.

5. 分词器:

分词器就是从一串文本中切分出一个一个的单词,并对每个单词进行标准化.

5.1 三部分:

  • character filter: 分词之前的预处理,过滤掉HTML标签,特殊符号转换等.
  • tokenizer: 分词
  • token filter: 标准化

5.2 内置分词器:

  • standard分词器: a. es默认的分词器. b. 将词汇单元转换成小写形式,并去除停用词和标点符号,支持中文采用的方法为单字(一个一个字)切分. c. 停用词指的是在自然语言处理中,一些不包含什么信息的词语,以及一些特别高频的词: 如the、to、the、a、an、and等...
  • simple分词器: a. 先通过非字母字符来分割文本信息,再将词汇单元统一为小写形式. b. 会去掉数字类型的字符.
  • Whitespace分词器: a. 仅仅去除空格,对字符没有lowcase(小写)化,不支持中文. b. 不对生成的词汇单元进行其他的标准化处理.
  • language分词器: a. 特定语言的分词器,不支持中文.

标签:brown,Doc,fox,索引,搜索,分词器,quick,倒序,es
From: https://blog.51cto.com/u_16237074/7710601

相关文章

  • 2023-10-4 使用Arduino为esp8266烧录ps4 5.05适合的固件
    2023-10-4使用Arduino为esp8266烧录ps45.05适合的固件其实这是个伪需求,但都在我琢磨所有之后才发现,goldhen2.1之后的大版本对于505来说都是没什么实质意义,反而会引起死机等情况。想玩的游戏等降级补丁即可。当然本文记录如何通过arduino烧录你想要的插件1.解决:1-1.A......
  • Proj CDeepFuzz Paper Reading: NYX: Greybox Hypervisor Fuzzing using Fast Snapsho
    Abstract背景:hypervisor(virtualmachinemonitor,VMM)保障了不同虚拟机之间的安全隔离(securityboundaries)用户:攻击场景:在云服务上运行自身的VMinstances,提升权限本文:Nyx目的:coverageguidedhypervisorfuzzermethod:1.fastsnapshotrestorationmechanism2.mu......
  • Requests模块
    该文总结了requests这个http模块,该模块主要用于发送请求获取响应,该模块有很多的替代模块,比如说urllib模块,但是在工作中用的最多的还是requests模块,requests的代码简洁易懂,相对于臃肿的urllib模块,使用requests编写的爬虫代码将会更少,而且实现某一功能将会简单。......
  • 关于 Failed to bind properties under 'sky.alioss.access-key-id' to java.lang.Str
    问题描述废话不多说,上截图解决方案问题出现的原因:因为自己没有按照格式去运行程序,在yml中把他们得位置向前一个单位就解决问题了......
  • 利用不可识别的人脸来增强人脸识别性能Harnessing Unrecognizable Faces for Improvin
    灰色标记:可以日后引用的观点红色标记:好的写法、语句、单词紫色标记:文章重点黄色标记:寻常突出文章评论::创新点::主要内容::gallery中的样本通常是人为采集并精心挑选的,它们具有较好的可识别性;然而,query通常来自于真实场景,它们受多种因素干扰如像素等等。......
  • 【VMware篇】2-VMware ESXi安装和配置手册
    第1章 前言  本文主要介绍Dell服务器安装ESXi系统。  是可直接安装在物理服务器上的强大的裸机管理系统,是一款虚拟软件;ESXi本身可以看做一个操作系统,采用Linux内核,安装方式为裸金属方式,可直接安装在物理服务器上,不需安装其他操作系统,它是专为运行虚拟机、最大限度降低配置要......
  • 【VMware篇】3-ESXi安装Windows Server2019虚拟机和更改配置
    第1章前言   本文主要介绍Dell服务器安装ESXI后虚拟机的安装,安装例子:WindowsServer2019。1.Windowsserver2019            Windowsserver2019是微软公司研发的服务器操作系统,WindowsServer2019包括三个许可版本:DatacenterEdition(数据中心版):适用于高虚拟化......
  • 【VMware篇】5-ESXi导入、导出虚拟机和模板
    第1章、前言本文主要介绍封装系统导出为模板,以WindowsServer2019为例。第2章、导出系统为模板1、打开运行窗口输入“sysprep”点击确定。2、选中“sysprep”鼠标右键“以管理员身份运行”。3、勾选“通用”,关机选项选择“关机”,点击确定。4、选中server2019 鼠标右键选择“导出......
  • [CF1854E] Game Bundles
    题目描述Rishiisdevelopinggamesinthe2Dmetaverseandwantstooffergamebundlestohiscustomers.Eachgamehasanassociatedenjoymentvalue.Agamebundleconsistsofasubsetofgameswhosetotalenjoymentvalueaddsupto$60$.Yourtaskistoc......
  • SWERC 2022-2023 - Online Mirror (Unrated, ICPC Rules, Teams Preferred)
    Preface纯纯的智商场,只能说老外的出题风格和国内的比赛差异还是挺大的这场开局被签到题H反杀后灰溜溜地下机,结果后面的题出的都还挺顺的等到最后徐神把J过掉后我们都以为D是个大分类讨论(实际上机房里的学长们都是用分类讨论过的),就不想写了挂机到结束后面看题解发现确实是分类......