首页 > 其他分享 >机器学习中的海量数据查找—倒排索引查找

机器学习中的海量数据查找—倒排索引查找

时间:2024-10-18 20:10:04浏览次数:10  
标签:检索 文件 倒排 海量 索引 查找 哈希

原文链接:机器学习中的海量数据查找—倒排索引查找 – 每天进步一点点 (longkui.site)

索引是一种用于数据快速查找的数据结构,哈希表、二分查找、分块查找也可以视为一种索引,这类索引的价值在于在较短的时间内获得最相关、最全、最深的数据集合。
在通常使用的索引中,大多是基于顺序表、哈希表或B+树的索引。倒排索引(InvertedIndex)主要用于信息检索领域,它是其中最常用的数据索引存储结构,被用来存储文档集合中某个单词对应的文档集合及单词在文件中存在的位置,因此也称为反向索引,与其相对应的是正向索引。正向索引用于存储每个文件的单词列表,并记录其位置。以下表中所示的文件及文件对应句子内容为例。

正向索引文件与文件对应内容示例:

对于上表中句子建立正向索引表如下:

对于上面中的句子建立倒排序索引如下:

通过上图的内容,可以记录某个词语对应在某些文件的出现并记录在文件中的位置。
在信息检索中,可以根据文件生成的倒排索引,当用户检索“数据算法”时,会将词语对应的文件集合取出,并且会根据相关性对文件进行排序处理,得到最终检索后的结果。
此外,在某些检索系统中,可能会有不存储词语在文件中位置的情况,但是目前大多数检索系统都会存储,主要基于两个原因:一是在海量数据的检索情况下,全文检索过程中如果没有记录位置,在获取文件动态摘要时,会通过遍历文件的方式查找关键词出现的位置,存在性能损耗,而这对于数据量级较小的系统则影响较小;二是在检索结果展示过程中,为获得较好的动态摘要,需要对文件内搜索词分布情况进行统计,一般情况下会在较集中词语的区域提取摘要,如果提前确定关键词位置,对检索体验有很好的提升。
倒排索引的数据结果是检索系统中非常重要的组成部分,检索时间是检索系统中最重要的衡量指标之一,其核心在于倒排索引的设计。
虽然哈希表等其他数据结构也能够较好地处理数据索引问题,但是对于数据量较大的情况,哈希表的性能也会受到较大的影响。在数据量较大时,会将海量数据进行分布式索引,分布式哈希表和分布式倒排索引则是较好的处理方式,但从检索的综合评价角度,分布式索引更为合适。

标签:检索,文件,倒排,海量,索引,查找,哈希
From: https://www.cnblogs.com/longkui-site/p/18474978

相关文章

  • 分段处理海量数据SQL
    在DB2中,你可以使用`ROW_NUMBER()`窗口函数来为表中的每一行分配一个唯一的序号。然后,基于这个序号,你可以将数据划分成指定数量的组,并确定每组的上边界和下边界。假设你的表名为`my_table`并且它有一个唯一索引列叫做`id`。你想把1000条记录分成10组,那么每组应该包含100条记......
  • 【算法】C++中的二分查找
    ......
  • 算法->二分查找
    二分查找找>=target的第一个位置找<=target的最后一个位置classSolution{public://找>=target的第一个位置intbinarySearchLeft(vector<int>&nums,inttarget){intleft=0,right=nums.size()-1;while(left<=right){......
  • C++算法练习-day1——704.二分查找
    题目来源:.-力扣(LeetCode)题目思路分析二分查找是一种在有序数组中查找某一特定元素的搜索算法。搜索过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从......
  • Javascript算法——二分查找
    1.数组1.1二分查找1.搜索索引开闭matters!!![left,right]与[left,right)/***@param{number[]}nums*@param{number}target*@return{number}*/varsearch=function(nums,target){letleft=0;letright=nums.length-1;//[left,right],相等时......
  • Elasticsearch底层的倒排索引技术是什么?
    倒排索引倒排索引的概念是基于MySQL这样的正向索引而言的。技术应用在Elasticsearch,得益于倒排索引,用来实现高性能的搜索功能正向索引例如有一张名为tb_goods的表:idtitleprice1小米手机34992华为手机49993华为小米充电器494小米手环49............
  • 倒排索引及ES相关概念对比MySQL
    一、倒排索引1、先把文档内容进行分词,形成词条与文档ID的对应关系,叫做词条库,词条具备唯一性,建立索引2、对搜索内容进行分词,分词后得到一个关键词列表,根据关键词去词条库中匹配,在找对应的文档ID列表3、然后根据文档ID列表,找到对应的文档信息对比:   二、ES相关概念对比My......
  • 倒排索引
    什么是倒排索引倒排索引(InvertedIndex)也叫反向索引,有反向索引必有正向索引。通俗地来讲,正向索引是通过key找value,反向索引则是通过value找key。倒排索引的结构倒排索引通常包含两个主要部分:词项字典(TermDictionary):存储所有词项及其相关信息(如词频、位置等)。倒排列表(Posting......
  • 代码随想录算法训练营第一天|704二分查找、27移除元素、977有序数组的平方
    代码随想录算法训练营第一天|704二分查找、27移除元素、977有序数组的平方1Leetcode704二分查找题目链接:[704.二分查找](704.二分查找-力扣(LeetCode))文章链接:[代码随想录](代码随想录(programmercarl.com))视频链接:[手把手带你撕出正确的二分法|二分查找法|二分搜......
  • elasticsearch之倒排索引
    倒排索引elasticsearch有如此高的搜索性能,无异于使用了倒排索引。倒排索引中有两个重要的概念:文档(Document):用来搜索的数据,其中的每一条数据就是一个文档。例如一个网页、一个商品信息词条(Term):对文档数据或用户搜索数据,利用某种算法分词,得到的具备含义的词语就是词条。例如:我......