您好!大家好,我是小七,一个爱分享的程序员。小七打算在轻松幽默的对话中分享一些技术。如果你觉得通过小七的文章有所收获,那就给小七点赞吧。继续更新1.前言从上次开始继续。我以为采访我的小姐姐和我是相爱的。这项工作必须是确定的事情。殊不知最后被HR太太卡住了,说我体格太小不合适。我是来面试开发的,不是来面试的。我怀疑HR和刘阿姨是亲戚。人们是通过外表和体质来判断的。...因为觉得昨天很安全,今天没有约到面试,闲着没事,准备找在北京做工程师的发小玩一天。他跟我说他是什么长方体立体定向运动工程师,我没听懂。什么嘛,感觉比Java工程师还厉害,所以决定今天去拜访他。转了四次地铁,又坐了十几站公交车,终于来到了发小侯哥哥身边。他之前在电话里告诉我,他现在过得很好。从以前一无所有,到现在。..,由于地铁信号不太好,没听清楚是怎么回事就挂了。当我到达目的地时,我打电话给他。他告诉我他在幸福小区的顶层。直接上来。没有门。我想知道为什么房子这么高档,连门都没有。可当我上来的时候,远远的就看到了他的背影。我终于知道我后来说的话现在是混乱的。原来我以前一无所有,现在身无分文。..我:“猴哥,你不是说你顶楼没有门吗?”猴哥:“对啊,你看,我现在在顶楼干活呢,顶楼还没盖好,当然是没有门嘛”。我:“好吧,我不能跟你说话,那你不是工程师吗,什么长方体立体定向运动工程师”。猴哥:“是的,你看,我手里的砖是一个长方体,我把它从这里搬到这里,我设置的不是长方体立体定向运动工程师吗?”我:“好吧,自从你来到大城市,你的套路变深了。”侯哥:“那是必须的,对了,小七,你不是来北京面试Java的吗?面试怎么样?”我:“别提了,人家嫌我体质不好,去上班吧。”猴哥:“那你不用找开发工作,跟我一起干,干一个月身体就好了。”我:“那你在这里加班吗?压力大吗?”猴哥:“不会吧,你看我们家门口的职位要求,我觉得很简单,和你们程序员还是没法比哦”。我:“在哪里?我去看看。”我:“你他妈跟谁学的?现在工地都这样了?”猴哥:“不行啊,前段时间我们空降了一个工头,犯了规矩,现在回去每天都要写ppt。”我:“这些都是大厂给社会输送的人才,你要跟你的工头一起努力。”猴哥:“必须的,等我收拾好了,我们出去玩吧。”我:“现在就收拾一下吧,别换衣服了。”猴哥:“不用换了,待会领导来电话,得赶回去上班。你不也是随时待命吗,和女朋友逛街都要带着电脑。”我:“以后学我好,别学我坏。”猴哥:“也不是你不好,我……”。2.面试下午在发小玩回来的路上,突然接到一个电话。电话那头的小姐姐声音甜美,说在简历库里看到了我的简历,问我有没有时间去现场面试。心想反正现在也没什么事,不如去面试吧,小姐姐说加我微信,等会把公司地址发给我。微信加小姐姐后,上来肯定先看朋友圈。小司机可能看不懂,但是老司机已经开始分析了。应该说这位女士真的很地道,比刘阿姨好多了。为了弥补被刘阿姨眼光震撼的读者们,我把小姐姐的照片分享给大家。到了地方后,小姐姐带我进了一间阴暗的小房间。正当我暗自庆幸有事的时候,她拿着面试题走了过来,说外面没地方了,就在这个小房间里做题吧,唉,没什么好期待的。完成问题后,面试官来了。当我看到他是个男人时,我立刻失去了兴趣。面试官:“小七,对吧?”我就是我”。面试官:“我看你简历上写着精通ElasticSearch?是真的还是错的?”我:“我时而精通,时而模糊,随便问。”面试官:“好,那你简单说说ElasticSearch是什么。”3.什么是ElasticSearch:《ElasticSearch是开发的Java语言,是目前最流行的开源企业级搜索引擎。它提供了一个具有分布式多用户功能的全文搜索引擎。它可以实现实时搜索,稳定,可靠,快速,易于安装和使用。”4.ElasticSearch索引原理面试官:“那你能告诉我ElasticSearch使用的是什么索引,原理是什么。”我:那个ElasticSearch中的分词使用倒排索引。我:ElasticSearch先把文章内容分词,把词和行数关联起来,然后把重复的词去重,记录行数,这样如果我们搜索上面的hello这个词,就会显示他第1和2行数据,因为hello就在这两行,所以没必要扫描整篇文章。面试官:“嗯,为什么有的数据库在数据量增加的时候性能下降的很厉害,而ElasticSearch的性能在数据量增加的时候却没有明显下降。”我:因为我们可以看到不管文章内容有多少,我们最后都会去重,也就是说最终索引表的条目数不会超过所有的词。也就是说,如果世界上只有100个词,那么最终索引表中的数据就只有100条,因为文章是由词组成的,不管文章有多少,也只有100条去重后的几条数据,只是数据的行发生了变化。这样我们可以看到,文章的内容越多,其词的重复率就越高,查询性能下降的速度也越来越慢。5.ElasticSearchWordSegmenter面试官:“嗯,那我们怎么知道句子中哪些词是词,怎么分词。”我:如果文章是英文的,分词很好,因为英文单词中间有空格,我们可以根据空格来分词,所以直接用ElasticSearch自带的分词器就可以了。如果文章是中文的,用ElasticSearch自带的tokenizer不太好用,因为它会把中文的每一个词分开,这显然不合理。所以我们可以使用IK中文分词器,我们可以使用这个插件来实现中文内容的分词。6、ElasticSearch的使用场景有哪些?面试官:“那你说说ElasticSearch有哪些使用场景。”我:一般来说,像百度这样专门做搜索的,你搜索关键词,它会帮你找到相应的内容,然后标红。我:还有像淘宝、京东这样的购物网站,在搜索关键词的时候也会显示内容,而且关键词是高亮的。面试官:“小伙子不错,什么时候能入职?”我:“嗯……我后面有面试,大概要一个星期吧。”面试官:“不认识其他人,就来找我吧,条件随意。”我:“不不不,让我考虑一下。”面试官:“好的,你想好了再告诉我,今天就做吧,有什么问题要问我吗?”我:“我有问题要问。”面试官:“问题是什么?”我:“带我一起去的hr球姐有没有兴趣……”七、总结ElasticSearch这里就不整理了,后面会继续更新文章。建议加入书签。文中涉及的命令必须像我一样多敲几次。只有在敲打的过程中,才能发现自己是否真正掌握了命令。如果觉得我的文章不错,请点个赞
