它们都称之为搜索引擎。虽然听起来比较高大上。但实际上他们就是搜索数据用的。但站在数据方面考虑,实际上数据会分为两种:结构化数据和非结构化数据。结构化数据:简单来说,就是有固定格式固定长度的的数据。
全⽂搜索法 既然我们已经知道顺序扫描法的弊端,那我们应该怎么进⾏优化呢?因为这样的数据是非结构化的数据。没有办法像结构化的数据做索引来达到快速检索的目的。那我们到底应该怎么办呢?答案很简单。逆向思维。
所以谷歌和百度搜索引擎的基本原理就是:网络机器人或者网络蜘蛛通过扫描网页中的内容,提取出相应的关键词,然后为提取出的关键词建⽴索引,并记录该关键词在文章中位置,当用户搜索时,如果命中该关键词,搜索引擎就根据按照之前的索引进查找
我们知道如果采用传统的数据库,我们可能通过创建索引的方式,去优化我们的查询速度。并且,我们还知道,如果在数据量比较大的话,还可以采用分库分表的方式继续优化。
那为什么还会出现类似Elasticsearch这样的搜索引擎技术呢?答案就像我上面介绍的那样。搜索引擎并不会将所有的数据全部按照结构化存储,而是按照相应的关键字存储。