ES在易企秀的应用实践
2019-11-01 本文已影响0人
郭彦超
介绍
- es是目前最好用的文档数据库,高性能、易扩展,可用于大规模数据搜索
- 存储上采用索引、分片、分段三层存储模式
- 数据结构上几乎支持所有数据类型
- 可通过settings对单个索引进行 分词器、内存、日志、线程、分片数、存储与压缩方式进行独立配置
- 14年开始接触并使用ES, 5年的时间里ES在架构与性能上变化还是蛮大的,最大的改动就是官方支持机器学习和sql了
现状
- 商品搜索
- 作品搜索
- 内容推荐
- 标签项目
- 用户分群
- 图片搜索
- 运维工具
优化
一些关于ES优化方面的原创相关文章推荐
7.x 特性
1、彻底废弃多type支持,包括api层面,之前版本可在一个索引库下创建多个type。
2、彻底废弃_all字段支持,为提升性能默认不再支持全文检索,即7.0之后版本进行该项配置会报错。
3、新增应用程序主动监测功能,搭配对应的kibana版本,用户可监测应用服务的健康状态,并在出现问题后及时发出通知。
4、取消query结果中hits count的支持(聚合查询除外),使得查询性能大幅提升(3x-7x faster)。这意味着,每次查询后将不能得到精确的结果集数量。
5、新增intervals query ,用户可设置多字符串在文档中出现的先后顺序进行检索。
6、新增script_core ,通过此操作用户可以精确控制返回结果的score分值。
7、优化集群协调子系统,缩减配置项提升稳定性。
8、新增 alias、date_nanos、features、vector等数据类型。
9、7.0自带java环境,所以我们在安装es时不再需要单独下载和配置java_home。
10、7.0将不会再有OOM的情况,JVM引入了新的circuit breaker(熔断)机制,当查询或聚合的数据量超出单机处理的最大内存限制时会被截断,并抛出异常(有点类似clickhouse)。
11、丰富多彩的kibana功能。
12、 pinned query 可对部分文档实现置顶操作、
13、 l1norm、l12norm 新增L1与L2范式 用于相似度计算
14、 cumulative_cardinality 支持基数统计的累计操作(每日新增用户)