1、Elasticsearch比MySQL的优势在哪里?(为什么要使用Elasticsearch?)
1)MySQL的海量数据时,搜索效率比较低,而Elasticsearch采用倒排索引法检测数据,从而效率更高。
2)MySQL的搜索功能比较弱,只有like这种模糊搜索,而Elasticsearch拥有大量复杂搜索的API,更加适合数据搜索场景
2、请说说Elasticsearch倒排索引原理?

1)首先,Elasticsearch将文档数据进行索引构建。将文档数据需要分词的字段内容使用分词器进行分词,并记录每个词条和原文档的出现位置和出现频率等信息,构建出文档的索引库。
2)然后,用户搜索时,可以对关键词进行分词,使用分词后的词条来匹配索引库,在索引库匹配到记录后,通过文档位置频率信息,反查具体的文档数据。
3、请说说什么是分词器?ES有哪些常用的分词器?
分词器是Elasticsearch用于对内容进行分词的工具(程序),Elasticsearch内置许多分词器,默认使用Standard标准分词器,而标准分词器对中文支持并不好友(因为它对中文进行单字分词),
所以在开发中进行中文分词时使用第三方的ik分词器,ik分词器内置有ik_smart和ik_max_word算法,ik_smart是最小分词器法,ik_max_word是最细分词法。
4、你们项目的日志怎么管理的?(你们项目在线上出问题,怎么最快发现问题的?)
通常我之前待的公司上线的项目,都会由运维那边搭建日志分析平台,我了解到上家搭建的是ELK平台(Elasticsearch+Logstash+Kibana),这个平台会自动采集项目运行的日志,并且进行分析,
运维人员只要到Kibana查看日志即可,当然ELK平台也设计一个告警规则,当系统出现异常时,自动给运维实时通知(短信+电话)
5、MySQL、Redis、MongoDB、Elasticsearch各自的优势?
MySQL:是关系型数据库,磁盘。有复杂表关系(一对一,一对多,多对多),并且有完善事务机制(ACID)。 用户,订单,商品
Redis: 非关系数据库,内存。Redis建议只存储热点(用户查询频率极高)的数据,且数据量相对小的数据。秒杀的库存量 手机验证码
MongoDB: 非关系数据库,磁盘。MongoDB适合相对高频擦写(增删改)的海量数据。 评论
Elasticsearch: 非关系数据库,磁盘。Elasticsearch适合海量数据的复杂检索。 商品搜索
效率: Redis > MongoDB /Elasticsearch:> MySQL
