0%

搜索引擎重要概念

搜索引擎重要概念

倒排索引

倒排索引(inverted index),也称为反向索引,是搜索引擎中最常见的数据结构,几乎所有的搜索引擎都会使用到倒排索引,它将文档中的词作为关键字,建立词与文档的映射关系,通过对倒排索引的检索,可以根据词快速获取包含这个词的文档列表,这对于搜索引擎来说至关重要

存储的结构大概是这样的

单词 文档ID
this 1,2,3
people 5
love 13

分词

分词,又称为切词,就是将句子或者段落进行切割,从中提取出包含固定语义的词。对于英语来说,语言的基本单位就是单词,因此,分词特别容易,只需要根据空格/符号/段落进行分割,并且排除停止词(stop word),提取词干,即可完成,但是对于中文来说,要将一段文字准确的切分成一个个词,就不那么容易了,中文是以字为最小单位,多个字连在一起才能构成一个表达具体含义的词,中文的句子和段落都有一个明显的标点符号分割,唯独词没有一个形式上的分割符,因此,对于支持中文搜索的搜索引擎来说,需要一个合适的中文分词工具,以便建立倒排索引。 提取词干是西方语言特有的处理步骤,比如英文中的单词有单复数的变形,-ing和-ed的变形,但是在搜索引擎中,应该当做同一个词。

停止词

停止词(stop word),在英语中包含了a、the、and这样使用频率很高的词,如果这些词都被建到索引中进行索引的话,搜索引擎就没有任何意义了,因为几乎所有的文档都会包含这些词,对于中文来说也是如此,中文里面也有一些出现频率很高的词,如“在”、“这”、“了”、“于”等等,这些词没有具体含义,区分度低,搜索引擎对这些词进行索引没有任何意义,因此,停止词需要被忽略掉

排序

排序,当输入一个关键字进行搜索时,可能会命中许多文档,搜索引擎给用户的价值就是快速的找到需要的文档,因此,需要将相关度更大的内容排在前面,以便用户能够更快的筛选出有价值的内容,这时,就需要有适当的排序算法。一般来说,命中标题的文档将比命中内容的文档有更高的相关性,命中多次的文档比命中一次的文档有更高的相关性

欢迎关注我的其它发布渠道