功能分解

这一节我们来进行功能的分解,结合上一节提到的问题,看起来其实很多问题需要解决,所以我们如果不拆解一下,根本无从下手。

首先,我们先确定做一个最基本的搜索,替换掉现有的搜索。完成一个功能之后,再考虑添加和完善其他的功能,做到各个击破。

其次,是数据的处理问题,我们先要把相关数据从现有的 MySQL 里面放到 Elasticsearch 里面才具备使用 Elasticsearch 搜索能力的条件。这是第二步。

最后,我们要研究一下网站的 PHP 代码,看如何才能替换为新的搜索结果展现,最好做到能可切换恢复之前的搜索。

好,我们进一步细化如下:

第一步,我们就约定好先进行文章的搜索替换吧。 也就是在搜索框里面能够通过关键字找到对应的文章,就这么简单。

第二步,数据的问题,我们需要找到对应的 MySQL 表,然后导出到 Elasticsearch 里面去。不做实时同步,先对历史数据可以查。

第三步,UI 界面,我们能够显示文章列表和基本信息就行了。

我们先确定功能范围,这个算是万里长征的第一步。

然后我们再明确一下验收场景,通过中文社区的搜索框,输入一篇现有文章里面或者或者正文包含的关键字能找到文章,非常简单的验收场景。

接下来,我们就可以查看数据库表结构了。