elasticsearch
elasticsearch是一款非常强大的开源搜索引擎,可以帮助我们从 海量数据中快速找到需要的内容。
elasticsearch结合kibana,Logstash,Beats,也就是elastic stack(ELK).被广泛应用在日志数据分析,实时监控等领域
elasticsearch是elastic stack的核心,负责存储,搜索,分析数据
传统数据库采用正向索引,elasticsearch采用倒排索引:
文档:每条数据就是一个文档
词条:文档按照语义分成的词语
总结:
正向索引:基于文档id创建索引。查询词条时必须先找到文档,而后判断是否包含词条。
倒排索引:对文档内容分词,对词条创建索引,并记录词条所在文档的信息,查询时先根据词条查询到文档id,而后获取到文档。
elasticsearch是面向文档存储的,文档数据会被序列化为json格式后存储在elasticsearch中。
索引是相同类型的文档的集合。
映射是索引中文档的字段约束信息,类似表的结构约束。
总结:
Mysql:擅长事务类型操作,可以确保数据的安全和一致性
Elasticsearch:擅长海量数据的搜索,分析,计算
索引库操作
mapping是对索引库中文档的约束,常见mapping属性包括
type:字段数据类型,常见的简单类型有:
字符串:text(可分词的文本),keyword(精确值,例如:品牌,国家,ip地址)
数值:long,integer,short,byte,double,float
布尔:boolean
日期:date
对象:object
index:是否创建索引,默认为true
analyzer:使用哪种分词器
properties:该字段的子字段
GET _search
{
"q