1.为什么要使用Elasticsearch?
当我们在商城中使用搜索功能时,随着后期项目数据量的不断增大,如果我们继续使用以前数据库模糊查询的方式去查询数据,在百万数据量的情况下,效率非常低下;而Es是一种支持全文检索的框架,特点是可以实时存储和实时分析搜索引擎,并且当我们数据量很大的时候可以集群,所以我们使用搜索功能时,可以把商品常用的名称,价格,描述,id等信息存储到索引库中,查询的时候可以提高查询速度。
2.elasticsearch 了解多少,说说你们公司 es 的集群架构,索引数据大小,分片有多少,以及一些调优手段
es 生产集群我们部署了 2台机器,每台机器是 6 核 64G 的,集群总内存是 128G。
我们 es 集群的日增量数据大概是 1000 万条,每天日增量数据大概是 200MB,每月增量数据大概是 3 亿,8G。
目前线上有 5个索引,每个索引的数据量大概是 10G,所以这个数据量之内,我们每个索引使用的是默认的5个shard(分片)。
调优手段一般是从三个方面去考虑的:
1.在设计阶段的时候 使用别名进行索引管理,每天凌晨定时对索引进行force_merge操作,针对合理的字段设置分词器
2.在写入的前,副本数设置为0并且禁用刷新机制,写入过程中,采用bulk批量写入;写入后恢复副本数和刷新间隔。
3,在查询的时候利用倒排索引机制,尽量使用keyword类型。
3、elasticsearch 的倒排索引是什么
我们传统的检索方式是通过遍历整篇文章,逐个比对找到对应的关键词位置,而倒