前几天去猪场面试了一下,搜索相关的。虽然最后还是没有通过,但是感觉还是有很多收获的。在此小结一下,为以后的面试增加点经验,也给想去网易的同学一个参考。
- 一面(电面)
当时刚下班,回家的路上打来的电话。
1.自我介绍
2.项目用的什么做的(elasticsearch)
3.全量/实时索引怎么做的(这个只要结合自己的项目回答即可。个人感觉回答的不是很好,因为当时在武纺旁边,车流量较大,周围很嘈杂,我尽量走到僻静的地方对方还是听不清)
4.数据量多少,目前集群的状况,以及日常的维护情况(这个也不难回答)
5.他又问到目前使用ES的过程中有没有遇到什么问题,我回答了出现过性能问题,以及严重的线上问题。面试官对性能问题比较感兴趣,我们都知道ES中有一个query叫functionScoreQuery,可以做到人为给文档打分(使用脚本)。我们一开始使用的是比较普遍的groovy脚本,自己定义了一套规则对文档进行打分,但是这会带来性能上的影响(ES官方文档好像有过相关介绍)。面试官问我们是怎么解决的,这个是我自己有重新写了一个Java的脚本(或者说plugin),将语言类型从groovy改成了native
6.后面他又了几个ES相关的问题,但是比较简单,就略过了。
个人觉得,如果是电面,一定要选择一个较为安静的地方这样容易交流。
- 二面
一面过了一周后,便有hr电话通知去杭州面试。因此,请了几天假,跑到杭州去面了一下。二面个人觉得是最最重要的面试,会直接决定你能否进入下一轮。
- 自我介绍
- 项目(全量/实时),面试官很注重细节和问题处理能力,一开始从业务开始,全量索引怎么创建(从数据read,到join,再到推送到ES),建议在面试前对自己项目梳理一遍,可以自己画一个大致流程图(当时面试官叫我画一下你们的全量流程)后面又问了很多项目的细节,不多阐述;