文章目录
前言
假设数据库存在以下几条数据
一、ES中存储及搜索原理图
二、说明
ES的数据库我们称之为 index(索引库),每条数据我们称之为 document(文档),ES在存储文档的时候,会对它需要分词的字段内容进行切分,切分成一个个词条,再建立每个词条与文档唯一标识(id)的对应关系,即倒排索引。
之前数据库存在的两个问题,通过ES是否能够解决:
1.性能低:使用模糊查询,左边有通配符,不会走索引,会全表扫描,性能低。
ES解决方案:如果使用"手机"作为关键字查询,ES生成的倒排索引中,词条会排序,形成一颗树形结构,提升词条的查询速度。
2.功能弱:如果以"华为手机" 作为条件,查询不出来数据
ES解决方案:如果使用"华为手机"作为关键字查询,ES也可以对搜索的关键字进行分词,比如将华为手机拆分成"华为"、“手机”,然后根据两个词分词去倒排索引中进行查询,然后取结果的并集。