es是什么
elasticsearch:一种开源的分布式搜索引擎,也是一种文档型数据库(NOSQL)数据库。
数据库的分类
- 关系型数据库(SQL)
MYSQL、PGSQL、ORACAL、SQL SERVER - 非关系型数据库(NOSQL NOT ONLY SQL)
树形结构、网状结构、列式存储、键值对
关系型数据库适合做逻辑关系的业务处理,而非关系型数据库适合海量存储,有一些工具包可以将SQL查询语句转化为适合NOSQL数据库的查询语言,使得一些NOSQL数据库也有关系分析的能力。
搜索引擎和数据库
搜索引擎和数据库的区别
搜索引擎本身也是一个数据库,数据库也提供了搜索查询的功能。但是侧重点不同:
- es查询速度快,亿级别的数据都是毫秒级响应
- es的分析能力更强,例如,自带分词插件
SQL数据库进行查询搜索例子
想查找"海澜之家男士上装"的相关商品
手动分词
select * from table where title like "%海澜之家%"
select * from table where title like "%上装%"
select * from table where title like "%男士%"
es查询
GET /index/_search
{
"quary":{
"match":"海澜之家男士上装"
}
}
搜索引擎的查询时计算能力更强,可以在查询的时候进行分词和自定义计算模块。而数据库是计算后存储,方便查询。
es缺点:写入慢
为什么es查询那么快,写入却慢?
因为es在写入数据的时候就直接建立了一个倒排索引。在写入的时候就进行了索引的计算。
网友评论