正排索引:
根据已知条件搜索,例如根据id查询某一记录;
id | title | price |
1 | 小米手机 | 3499 |
2 | 华为手机 | 2999 |
3 | 小米手环 | 1222 |
引言:
对于数据库而言,所有的索引都是正排索引,而且索引只能添加于小字段,以免造成索引过长;
而对于内容较长得数据字段则不能使用正排索引,且当搜索条件是某一字段的部分时需要使用like模糊查询,
模糊查询是将每一条记录逐条扫描进行查询,效率太慢,这时就可以使用搜索引擎(倒排索引)进行内容查询
倒排索引:
将内容分成多个词,每个词条都是唯一的,再给词条添加索引,这样就可以找出含有包含该词条得所有记录id,
此时就可以找出所有包含该词条的所有内容,这样从内容搜索得方式就是倒排索引
elasticsearch存储
elasticsearch是面向文档存储的,可以是数据库得一条商品数据,一个订单信息;
文档数据是以json得形式保存到elasticsearch中;
例如:下面就是一条记录保存到elasticsearch中的形式:
索引:
索引:相同的文档集合,例如下面三个不同的文档集合
映射:索引中文档的字段约束信息,类似表的表结构(id,name,age)
mysql与elasticsearch概念对比:
架构:
elasticsearch:适合海量数据的搜索,分析,计算
mysql:适合事务性的操作,例如curd