seo底层原理第2课:如果是你怎么设计搜索引擎
Posted seo优化教程老竹
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了seo底层原理第2课:如果是你怎么设计搜索引擎相关的知识,希望对你有一定的参考价值。
要设计一个系统,首先要设计数据结构,然后把数据结构封装到各个算法和类中,然后将各个类组合起来就完成了,所以设计搜索引擎是基于以下几个层次来的。
1、首先需要一个底层的数据层,用来存储倒排索引和正排索引,每个字段都会建立相应的倒排和正排索引,这一部分应该有一系列相关的模块来实现。
2、所有字段的倒排索引和正排索引合起来就是整个数据文件,然后需要一些模块来对这些东西进行管理。
3、使用了分段的方式管理文档的索引,每到一定的条件下将索引刷新到磁盘或者将索引合并起来。
4、需要一个引擎的东西来管理多个索引,引擎负责复杂的查询策略和排序策略,这个引擎是可以更换和修改了,只需要实现标准接口就行,也可以自己实现来替换默认的引擎达到更多的功能,甚至你能自己写一个引擎,实现SQL查询。
5、需要一个和外界交互的层,实现一个http服务器来和外部交互,交互的数据通过json来进行,这一层也可以重写成任何你需要的样子。
按照上面这些个模块,一个搜索引擎,在整体架构上大约分成以下几个层次
1、首先,最底层的是数据模块层,负责引擎内所有的数据描述,对于搜索引擎来说,数据分为倒排索引和正排索引。
2、在这一层之上是字段层,每一个字段对应了一个正排索引和一个倒排索引(可选),因为有些字段只需要展示出来而不需要进行搜索是不需要倒排的。
3、在字段层之前有个段的层来对这些字段进行管理,段有的在内存中,有的刷新到磁盘上了。
4、段层之上就是索引模块层了,这一层对上提供一些基本的增加,删除,修改,查找的接口。
5、索引模块层之上是引擎层,这一层实现具体的业务查找逻辑。
6、最上面是一个网络层,负责和外界进行交互。
整个代码的大框架图
以上是关于seo底层原理第2课:如果是你怎么设计搜索引擎的主要内容,如果未能解决你的问题,请参考以下文章