elasticsearch 的介绍 就不啰嗦,大家可以上官网看。官网地址如下:
What is Elasticsearch? | Elasticsearch Guide [7.16] | Elastic
因为最近做的业务,数据结构比较复杂 而且量大,因为查询 聚合统计问题,最后考虑 适用elasticsearch 提升业务功能查询统计效率。
场景:品牌名称 是数组类型 品牌类型 也是数据类型 ,数据有1200万左右 数据类型如下
根据输入的名称 统计 名称所函盖的分类,并且每个分类的数量。
例如 输入 C 第二列带有C字母的数据 搜索出180行数据满足 涵盖的分类有5, 30, 32, 35, 43,然后每个分类的数量都加1
开始使用mysql 的 json格式 带二级索引,结果从600多万的数据搜索出3w数据 进行统计 需要20秒左右,而且这个时间 会随着匹配的数据越多而增加时间。让我不得不考虑使用es 看看效果如何 ,一下是测试结果
数据总量
took 是查询耗时,单位毫秒,total 是命中总数量 一下是分类 的聚合统计
查询语句如下:
{
"query":{
"bool":{
"should":[
{
"match":{
"brandName":{
"query":"Ac"
}
}
},
{
"wildcard":{
"brandName.keyword":"*Ac*"
}
}
],
"minimum_should_match":"50%",
"filter":{
"bool": {
"must_not":{
"term":{
"brandType":9
}
}
}
}
}
},
"size": 10000,
"aggs":{
"type_count":{
"terms":{
"field":"brandType",
"size":10000
}
}
}
}
es 在本地 不存在网络延迟的方面,效率很高,基本在百万级别数据 ,查询 和聚合统计 耗时在500毫秒以内。
关于es 与 spring boot框架整合,请看下一篇 springboot 整合 elasticsearch 一
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)