导航:首页 > 网站优化 > 倒排索引对seo的影响

倒排索引对seo的影响

发布时间:2020-09-07 00:43:45

1、什么是倒排索引

倒排索引表中的每一项都包括一个属性值和具有该属性值的各记录的地址。由于不是由记录来确定属性值,而是由属性值来确定记录的位置,因而称为倒排索引(inverted index)。带有倒排索引的文件我们称为倒排索引文件,简称倒排文件。建立全文索引中有两项非常重要,一个是如何对文本进行分词,一是建立索引的数据结构。分词的方法基本上是二元分词法、最大匹配法和统计方法。索引的数据结构基本上采用倒排索引的结构。
分词的好坏关系到查询的准确程度和生成的索引的大小。在中文分词发展中,早期经常使用分词方式是二元分词法,该方法的基本原理是将包含中文的句子进行二元分割,不考虑单词含义,只对二元单词进行索引。因此该方法所分出的单词数量较多,从而产生的索引数量巨大,查询中会将无用的数据检索出来,好处是算法简单不会漏掉检索的数据。之后又发展出最大匹配分词方法,该方法又分为正向最大分词和逆向最大分词。其原理和查字典类似,对常用单词生成一个词典,分析句子的过程中最大的匹配字典中的单词,从而将句子拆分为有意义的单词链。最大匹配法中正向分词方法对偏正式词语的分辨容易产生错误,比如“首饰和服装”会将“和服”作为单词分出。达梦数据库采用的是改进的逆向最大分词方法,该分词方法较正向正确率有所提高。最为复杂的是通过统计方式进行分词的方法。该方法采用隐式马尔科夫链,也就是后一个单词出现的概率依靠于前一个单词出现的概率,最后统计所有单词出现的概率的最大为分词的依据。这个方法对新名词和地名的识别要远远高于最大匹配法,准确度随着取样文本的数量的增大而提高。
二元分词方法和统计方法是不依赖于词典的,而最大匹配法分词方法是依赖于词典的,词典的内容决定分词结构的好坏。
全文检索的索引被称为倒排索引,之所以成为倒排索引,是因为将每一个单词作为索引项,根据该索引项查找包含该单词的文本。因此,索引都是单词和唯一记录文本的标示是一对多的关系。将索引单词排序,根据排序后的单词定位包含该单词的文本。
步骤1)读取一整条句子到变量str中,转到步骤2

步骤2)从句子的尾端读取1个字到变量word中,转到步骤3

步骤3)在字典查找word中保存的单词。如果存在则保存word,转到步骤4,否则转到步骤5)

步骤4)如果是字典中最大单词或者超过最大单词数(认定为新词),从句尾去掉该单词,返回步骤2

步骤5)读取前一个字到word中,构成新单词,转到步骤3)

词库的内存数据结构和词库中单词的匹配算法

内存中单词采用层次结构保存

假设字典中有如下的单词:中国 中华民国 国家 人民 民主

在内存中按照如下方式按层排列,其中每一个方块代表一个字,箭头所指向为该单词的前一个字

2、倒排索引不包文档里面的关键字他还会去查吗

首先,要提取倒排索引内词典文件中的关键词;
对提取出来的关键词进行编码。本章采取hash编码的方式。既然要用hash编码,那么最重要的就是要解决hash冲突的问题,下文会详细介绍。
有一点必须提醒读者的是,倒排索引包含词典和倒排记录表两个部分,词典一般有词项(或称为关键词)和词项频率(即这个词项或关键词出现的次数),倒排记录表则记录着上述词项(或关键词)所出现的位置,或出现的文档及网页ID等相关信息。
24.1、正排索引与倒排索引
咱们先来看什么是倒排索引,以及倒排索引与正排索引之间的区别:
我们知道,搜索引擎的关键步骤就是建立倒排索引,所谓倒排索引一般表示为一个关键词,然后是它的频度(出现的次数),位置(出现在哪一篇文章或网页中,及有关的日期,作者等信息),它相当于为互联网上几千亿页网页做了一个索引,好比一本书的目录、标签一般。读者想看哪一个主题相关的章节,直接根据目录即可找到相关的页面。不必再从书的第一页到最后一页,一页一页的查找。

接下来,阐述下正排索引与倒排索引的区别:

一般索引(正排索引)
正排表是以文档的ID为关键字,表中记录文档中每个字的位置信息,查找时扫描表中每个文档中字的信息直到找出所有包含查询关键字的文档。正排表结构如图1所示,这种组织方法在建立索引的时候结构比较简单,建立比较方便且易于维护;因为索引是基于文档建立的,若是有新的文档假如,直接为该文档建立一个新的索引块,挂接在原来索引文件的后面。若是有文档删除,则直接找到该文档号文档对因的索引信息,将其直接删除。但是在查询的时候需对所有的文档进行扫描以确保没有遗漏,这样就使得检索时间大大延长,检索效率低下。
尽管正排表的工作原理非常的简单,但是由于其检索效率太低,除非在特定情况下,否则实用性价值不大。

倒排索引
倒排表以字或词为关键字进行索引,表中关键字所对应的记录表项记录了出现这个字或词的所有文档,一个表项就是一个字表段,它记录该文档的ID和字符在该文档中出现的位置情况。由于每个字或词对应的文档数量在动态变化,所以倒排表的建立和维护都较为复杂,但是在查询的时候由于可以一次得到查询关键字所对应的所有文档,所以效率高于正排表。在全文检索中,检索的快速响应是一个最为关键的性能,而索引建立由于在后台进行,尽管效率相对低一些,但不会影响整个搜索引擎的效率。
倒排表的结构图如图2:

倒排表的索引信息保存的是字或词后继数组模型、互关联后继数组模型条在文档内的位置,在同一篇文档内相邻的字或词条的前后关系没有被保存到索引文件内。

24.2、倒排索引中提取关键词
倒排索引是搜索引擎之基石。建成了倒排索引后,用户要查找某个query,如在搜索框输入某个关键词:“结构之法”后,搜索引擎不会再次使用爬虫又一个一个去抓取每一个网页,从上到下扫描网页,看这个网页有没有出现这个关键词,而是会在它预先生成的倒排索引文件中查找和匹配包含这个关键词“结构之法”的所有网页。找到了之后,再按相关性度排序,最终把排序后的结果显示给用户。

如下,即是一个倒排索引文件(不全),我们把它取名为big_index,文件中每一较短的,不包含有“#####”符号的便是某个关键词,及这个关键词的出现次数。现在要从这个大索引文件中提取出这些关键词,--Firelf--,-11,-Winter-,.,007,007:天降杀机,02Chan..如何做到呢?一行一行的扫描整个索引文件么?
何意?之前已经说过:倒排索引包含词典和倒排记录表两个部分,词典一般有词项(或称为关键词)和词项频率(即这个词项或关键词出现的次数),倒排记录表则记录着上述词项(或关键词)所出现的位置,或出现的文档及网页ID等相关信息。
最简单的讲,就是要提取词典中的词项(关键词):--Firelf--,-11,-Winter-,.,007,007:天降杀机,02Chan...。
--Firelf--(关键词) 8(出现次数)

我们可以试着这么解决:通过查找#####便可判断某一行出现的词是不是关键词,但如果这样做的话,便要扫描整个索引文件的每一行,代价实在巨大。如何提高速度呢?对了,关键词后面的那个出现次数为我们问题的解决起到了很好的作用,如下注释所示:
// 本身没有##### 的行 判定为关键词行,后跟这个关键词的行数N(即词项频率)
// 接下来,截取关键词--Firelf--,然后读取后面关键词的行数N
// 再跳过N行(滤过和避免扫描中间的倒排记录表信息)
// 读取下一个关键词..

有朋友指出,上述方法虽然减少了扫描的行数,但并没有减少I0开销。读者是否有更好地办法?欢迎随时交流。

24.2、为提取出来的关键词编码
爱思考的朋友可能会问,上述从倒排索引文件中提取出那些关键词(词项)的操作是为了什么呢?其实如我个人微博上12月12日所述的Hash词典编码:
词典文件的编码:1、词典怎么生成(存储和构造词典);2、如何运用hash对输入的汉字进行编码;3、如何更好的解决冲突,即不重复以及追加功能。具体例子为:事先构造好词典文件后,输入一个词,要求找到这个词的编码,然后将其编码输出。且要有不断能添加词的功能,不得重复。
步骤应该是如下:1、读索引文件;2、提取索引中的词出来;3、词典怎么生成,存储和构造词典;4、词典文件的编码:不重复与追加功能。编码比如,输入中国,他的编码可以为10001,然后输入银行,他的编码可以为10002。只要实现不断添加词功能,以及不重复即可,词典类的大文件,hash最重要的是怎样避免冲突。

也就是说,现在我要对上述提取出来后的关键词进行编码,采取何种方式编码呢?暂时用hash函数编码。编码之后的效果将是每一个关键词都有一个特定的编码,如下图所示(与上文big_index文件比较一下便知):
--Firelf-- 对应编码为:135942
-11 对应编码为:106101

3、什么是倒排索引(inverted index)

这种索引表中的每一项都包括一个属性值和具有该属性值的各记录的地址。由于不是由记录来确定属性值,而是由属性值来确定记录的位置,因而称为倒排索引(inverted index)。带有倒排索引的文件我们称为倒排索引文件,简称倒排文件

4、比倒排索引更优化的搜索算法有哪些

倒排索引表中的每一项都包括一个属性值和具有该属性值的各记录的地址。由于不是由记录来确定属性值,而是由属性值来确定记录的位置,因而称为倒排索引(inverted index)。带有倒排索引的文件我们称为倒排索引文件,简称倒排文件。建立全文索引中...

5、seo到底该如何做呢?

第一,页面标题。这个我想无需多言,只要有常识的都知道页面标题是页面优化不会忽视的一个关键点。对于如何写好一个页面标题,这里也不多做讲述。一般来说,一个标题不能放超过三个关键词,越重要的放在越前面。切记堆砌关键词,并注意标题通顺。

第二,页面描述。页面描述(description)的主要作用并非体现在提高网页相关性上,而是直接影响搜索引擎排名结果的点击率上。做过竞价的朋友的知道,写页面描述实际上就是相当于竞价中写的“创意”。所以,我对页面描述的撰写完全参照“创意”的写法。

第三,关键词密度以及完整出现。关键词密度曾经一度是黑帽seo作弊的对象,虽然当今的搜索引擎大幅降低关键词密度的权重,但是一个合理的关键词密度仍是页面优化必须做的一个关键点。(题外话:真实的关键词密度是文章经过中文分词后,得到词项的集合,假设关键词就是一个词项,该关键词出现的次数除以所有词项的个数可得。)而关键词完整出现则直接显示其相关性,不可或缺。

第四,加粗或下划线。为关键词加粗或下划线是为了帮助搜索引擎进行中文分词的时候更容易判断出该关键词应为一个词项,避免被分词。

第五,主题偏移度。这就好比中学作文所说的“主题要集中”,就是尽量避免出现“题外话”。因为搜索引擎从倒排索引中找到网页,仍需要得到倒排索引文档与正排索引文档的词项向量,计算其余弦相似度。

第六,导入锚文本。包括站内和站外的导入锚文本。锚文字的写法可以是该页面的目标关键词,也可以是扩展的语义相关词。它与页面标题是最能体现页面相关性的两个方面,非常重要!

基本上,页面优化能做好这六方面,足矣!根本不需要再花太多时间在页面优化其他方面。如果有时间倒不如多花在提高页面的“内容质量”和“页面排版”上!

6、倒排索引的更新策略

更新策略有四种 :完全重建、再合并策略、原地更新策略以及混合策略。 完全重建策略:当新增文档到达一定数量,将新增文档和原先的老文档整合,然后利用静态索引创建方法对所有文档重建索引,新索引建立完成后老索引会被遗弃。此法代价高,但是主流商业搜索引擎一般是采用此方式来维护索引的更新(这句话是书中原话) 再合并策略:当新增文档进入系统,解析文档,之后更新内存中维护的临时索引,文档中出现的每个单词,在其倒排表列表末尾追加倒排表列表项;一旦临时索引将指定内存消耗光,即进行一次索引合并,这里需要倒排文件里的倒排列表存放顺序已经按照索引单词字典顺序由低到高排序,这样直接顺序扫描合并即可。其缺点是:因为要生成新的倒排索引文件,所以对老索引中的很多单词,尽管其在倒排列表并未发生任何变化,也需要将其从老索引中取出来并写入新索引中,这样对磁盘消耗是没必要的。 原地更新策略:试图改进再合并策略,在原地合并倒排表,这需要提前分配一定的空间给未来插入,如果提前分配的空间不够了需要迁移。实际显示,其索引更新的效率比再合并策略要低。 混合策略:出发点是能够结合不同索引更新策略的长处,将不同索引更新策略混合,以形成更高效的方法。

7、跪求“倒排索引表的改进策略”

关于这个问题,比较简单,怎么会这么简单呢?因为。。。。。。。

嘿嘿!!!

正确答案:人=吃饭+睡觉+上班+玩, 

猪=吃饭+睡觉, 

代入:人=猪+上班+玩, 

即:人-玩=猪+上班. 

结论:不懂玩的人=会上班的猪

男人=吃饭+ 睡觉+赚钱 

猪=吃饭+ 睡觉 

代入:男人=猪+赚钱 

即:猪=男人-赚钱 

所以男人不赚钱等於猪。 

女人=吃饭+ 睡觉+花钱。 

猪 =吃饭+ 睡觉。 

代入:女人=猪+花钱 

即:女人-花钱=猪。 

结论:女人不花钱的都是猪。

综上: 

男人为了让女人不变成猪而赚钱! 

女人为了让男人不变成猪而花钱!

结论: 

男人+女人 

=(猪+赚钱)+(猪+花钱) 

=两头猪!!!!

结果:问这个问题的人是头猪!

8、SEO搜索引擎正排索引和倒排索引的区别

正排索引:一个文件(网站/网页)对应许多关键词
倒排索引:一个关键词对应许多文件(网站/网页)
我们搜索关键词之后的结果就是倒排索引的体现,你搜一个关键词,出现很多文件可选择浏览

9、seo什么都不会,我能学到什么程度?

SEO(Search Engine Optimization)汉译为搜索引擎优化。搜索引擎优化是一种利用搜索引擎的搜索规则来提高目前网站在有关搜索引擎内的自然排名的方式。SEO的目的理解是:为网站提供生态式的自我营销解决方案,让网站在行业内占据领先地位,从而获得品牌收益;SEO包含站外SEO和站内SEO两方面;SEO是指为了从搜索引擎中获得更多的免费流量,从网站结构、内容建设方案、用户互动传播、页面等角度进行合理规划,使网站更适合搜索引擎的索引原则的行为;使网站更适合搜索引擎的索引原则又被称为对搜索引擎优化,对搜索引擎优化不仅能够提高SEO的效果,还会使搜索引擎中显示的网站相关信息对用户来说更具有吸引力。

10、在分布式环境中,建立倒排索引需要考虑哪些问题

倒排索引表中的每一项都包括一个属性值和具有该属性值的各记录的地址。由于不是由记录来确定属性值,而是由属性值来确定记录的位置,因而称为倒排索引(inverted index)。带有倒排索引的文件我们称为倒排索引文件,简称倒排文件。建立全文索引中有两项非常重要,一个是如何对文本进行分词,一是建立索引的数据结构。分词的方法基本上是二元分词法、最大匹配法和统计方法。索引的数据结构基本上采用倒排索引的结构。

与倒排索引对seo的影响相关的知识