本书结构

本书以实战为主,结合以下具体的搜索开发任务做为全书导向:

  • 为现有系统添加搜索功能
  • 建立一个垂直的搜索网站
  • 添加地理位置的搜索功能

第一个任务主要围绕如何使用 Elasticsearch 来给 Elastic 中文社区 添加更加丰富和更加完善的站内搜索功能,Elastic 中文社区是 Elasticsearch 爱好者交流的地方,但是网站程序自带的搜索功能是基于 PHP+MySQL 搭建的,经常遇到搜索结果找不到和找不全的问题,通过这个任务,大家可以了解一个完整的构建站内搜索功能的全部过程,包括各个具体实用的小的功能点实现,比如:给搜索框添加智能补全提示、搜索结果的高亮显示、搜索结果的聚合统计和过滤、相关搜索结果的推荐、短语纠错、数据的实时同步与更新等等。

第二个任务是建立一个独立的垂直搜索引擎,和 Google 类似的搜索网站,只不过搜索的内容都是特定领域的,这个任务同样围绕我们 Elastic 中文社区,打造一个专门面向 Elasticsearch 爱好者寻找学习资料的搜索引擎网站,我们将在任务中探讨如何使用网络爬虫以及如何基于 Elasticsearch 来构建一个完整的垂直搜索网站的所有功能。我还会介绍如何使用我的一个开源爬虫 GOPA 的详细过程,结合具体的资源爬取和数据加工清理过程,让您了解如何定制您自己资源的定向爬取。从而可以实现一个您自己场景和您自己业务数据的垂直搜索引擎。

第三个任务主要是实现一个”寻找附近的某某某”的功能,与地理位置信息处理和搜索相关的开发实战,还是结合我们社区的功能来做,将社区用户的坐标信息纳入到我们的网站系统中,实现寻找附近的社区同学,寻找离你最近的问题等等。将用户和帖子在地图上展示等功能。

可以看到,我们的需求都是围绕我们的 Elastic 中文社区来做的,这样做也是保证开发出来的东西都是真真切切可以感受到和具有实际使用价值的,比模拟数据来要的更加真实,很多实际开发中的问题也都能体现出来。