一、正向索引:(mysql:从记录中搜索关键字)
1.如果是根据id查询,那么直接走索引,查询速度非常快
2. 如果是做like模糊查询,只能是逐行扫描数据
1.逐行搜索每条记录,判断是否符合like模糊查询的条件
2.如果符合条件就放入结果集,不符合就丢弃,继续往下搜索
二、倒排索引:(es:根据关键字查找记录)
1.将每一个文档的数据利用算法分词,得到一个个词条
2.创建表,表中每行的数据包括词条,文档的id,位置信息等等
3.用户输入搜索条件时,会先对用户输入的内容进行分词,得到词条
4.然后再用这个词条在倒排索引中查找,获取文档的id
5. 然后再根据这个文档的id查找到具体内容
三、优缺点
1.正向索引可以给多个字段创建索引,根据索引搜索和排序的时候速度非常快,缺点是根据非索引字段,或者索引字段中的部分词条查找时,只能全表扫描,效率低
2.倒排索引在根据词条搜索,模糊搜索时,速度非常快,但是无法给词条创建索引,无法根据字段做排序