核心的概念:(反向)倒排索引,分词,相关性
上面图片来自张俊林的<<这就是搜索引擎的核心技术详解>>
索引的概念:为了能够更快地检索到信息的一种数据结构
熟悉mySQL的innoDB的索引(B+)树结构,都知道我们可以对某一列或者是联合多个列加索引,从而加快我们检索的目的.
比如:商品信息表(3000万数据),其中有列sku(商品唯一标识),名称(name),价格(price),颜色(color),品牌(brandid),供应商(providerid),是否包邮,产地等
如果用户要想搜索一个商品价格区间是30-3000,某个品牌的,供应商是某个供应商,同时名称包含了"加湿器",颜色是"白色"或者"黑色".
如果用sql语言来实现,我们发现我们大多数情况都是全表扫描,因为这些字段区分度低,建索引不划算.那么有没有一种快速的方法帮我们实现大数据量下的快速检索.
这个时候我们就需要引入搜索引擎的概念,来实现大数据的检索功能
商品的例子:我们把一个商品看做是一个文档(Document),这个文档里面的内容就是对应我们数据库中的一条商品信息.
3000万条商品就是3000万个文档,然后这些文档形成了一个文档集(Document Collection)
倒排索引(Inverted Index):倒排索引是实现单词—文档矩阵的一种具体存储形式。通过倒排索引,