前言

    这是一本介绍如何使用 Elasticsearch 来进行搜索实战的书。

    关于这本书,其实也是刚好前阵子出差,和朋友聊天谈起目前国内的 Elasticsearch 相关的中文学习资料,大家都觉得目前的学习资料都还不够理想,首先说说网络上的学习资料吧,网上的文章也大多比较零散,或都是只言片语,不够系统,大家分享的一些经验大多没有上下文,比如没有提及版本信息,但是有可能这些经验在不同版本之间不能适用,于是很多初学者只好每天浪迹于各大网站上,照着网上一大堆已然过时的文章进行尝试,却又无法成功,得不到应有的结果,甚是痛苦。

    我一般经常建议初学者,多看官网的文档,官网是最好的学习资源,不过对于英语不是母语的初学者确实不太容易,尤其是很多垂直领域的术语和概念,对于初学者来说其实比较难于理解。再者 Elasticsearch 是一个复杂的分布式系统,概念繁多,功能也很多,很容易迷失在茫茫文档之中。

    官网的文档也多偏向具体的功能点,这对于已经掌握入门知识的人来说没问题,但对于还没有迈进 Elasticsearch 门槛的新人来说,其实不太友好。官网有一本权威指南其实是很好的学习资料,也已经被我们社区的同学翻译成了中文,里面有很多知识的讲解,也是很好的学习资料,不过这本书是个大部头,现在大家都是赶项目,上级领导哪有足够时间让你好好看书研究,往往着急了就没头苍蝇一顿乱搜,结果反而不得法。

    国内已经出版的中文书籍呢,基本上以理论和功能点介绍为主,个别有实践内容的也不够完整和详尽,往往只是部分关键内容。另外还有一些在线的视频,也都是一些基础的知识点为主,大部分也是要收费的。

    针对这些,我想如果能够有一本讲具体的项目实战的书,从 0 开始讲如何设计,如何开发,如何代码实现,我想对于初学者会有很好的帮助,这让我想起我第一次自学编程的时候,那个时候刚接触电脑,一头雾水,什么都不懂,不知道从哪里开始,记得那个时候是买了一本如何使用 PHP 来编写论坛的书,非常的具体,每一步都有详细的介绍,这样跟着实践下来才总算摸着了门道,入门之后,就知道如何调用相关函数,具体的再去网上搜就好了。

    另外这本书,我希望是以在线的方式写作发布,大家都能看和学习,貌似这种方式现在也很流行,基础的入门知识应该是可以免费获取的,写完之后,出版社再去发行纸质版,愿意购买纸质版的可以自行选择。还有一个原因就是,技术书籍淘汰的速度实在是太快了,所以需要经常更新,以开源的方式来写书,可以保持频繁的更新,大家遇到 bug 也能直接提 issue。

    最后关于写书这件事,记得早在 12 还是 13 年的时候,当时就有编辑找到我,希望我写一本关于 Elasticsearch 的书,我当时婉言拒绝了,一个是因为当时非常忙,另外,我也知道要写好一本书其实很不容易。而最近刚好有这个想法的时候,电子工业出版社的宋主编刚好邮件联系到了我,我想了想,那就写吧,挑战一下。