这是一个系列的第一篇,看完这个系列,你可以学会如何开发一个强大的搜索引擎。该搜索引擎有如下功能:全文搜索搜索提示重要性排序
学习本系列的前提条件:一定的英语阅读能力,会JavaScript,了解HTTP请求。有使用过mongodb之类的non-SQL数据库经验更佳。

目录

全文搜索和数据库搜索有什么不同?

全文搜索和数据库搜索最大的一个不同是,你可以搜索出来不是完全包含搜索词的内容。这样的话,如果用户使用的搜索词不精确,也可以搜索到内容。

举个栗子,假设有一个外卖App,我现在想吃新奥尔良鸡翅,我搜索新奥尔良鸡翅。现在假设这个外卖App里面,有一家商家提供该产品。但是他的名字叫新奥尔良烤鸡翅,如果使用传统的数据库搜索,那么是搜索不到这个产品的。而全文搜索则可以,想知道为什么全文搜索可以?看完这个系列就知道啦~

使用的工具

本系列将会使用ElasticSearch来进行开发。用Kibana来辅助调试。本文开发环境为macOS,如果是其他操作系统,需要用户自己适当做一些调整。

ElasticSearch简介

es
ElasticSearch是一个支持全文搜索的开源数据库。本文撰写时候的最新版本是5.2。ElasticSearch有许多优秀的特性,不过为了本教程的简短起见,不在此详述,有兴趣者可以看本文最后的官方教程链接。

Kibana简介

kibana
Kibana是一个ElasticSearch的UI界面。也是ElasticSearch官方团队制作的。能让我们比较方便地查询和修改存储在ElasticSearch里面的数据。当然,Kibana还有许多屌得不行的特性。同样,有兴趣者可以看本文最后的官方教程链接。

动起手来!

ElasticSearch和Kibana的下载(无需安装)

https://www.elastic.co/products分别下载ElasticSearch和Kibana的最新版本。只需要下载zip版本的就可以了。

启动ElasticSearch

启动ElasticSearch非常简单,和把大象放进冰箱一样只需要三步!

  1. 解压下载下来的zip文件。用终端进入该目录。
  2. 执行 bin/elasticsearch,启动ElasticSearch。
  3. 使用浏览器访问http://localhost:9200,如果看到一段json数据。就说明启动成功!

启动Kibana

启动Kibana同样只需要三步,而且命令风格都一样。

  1. 解压下载下来的zip文件。在不关闭ElasticSearch的情况下,新开一个终端,进入该目录。
  2. 执行 bin/kibana,启动Kibana。
  3. 使用浏览器访问http://localhost:5601

访问数据库

接下来我们通过Kibana去访问ElasticSearch。在传统的SQL数据库中,我们采用SQL语句和数据库进行通信。在ElasticSearch中,我们直接采用HTTP请求的方式和数据库进行通信。
接下来,我们使用浏览器访问http://localhost:5601,进入Kibana的界面。我们在左侧菜单栏中选择Dev Tools,进去之后,你会看到这是一个两栏的Console。左边是你输入请求命令的地方,右边是返回的结果。如下图:
s01

我们先来输入我们的第一个请求,这里可以先不用考虑语法以及请求的含义,先体验一下和数据库通信的方式。我们在左侧栏中输入:

1
GET /_cat/indices

如果右侧返回:

1
yellow open .kibana wCYc_m8MQmCruxCsdYK9JA 1 1 1 0 3.1kb 3.1kb

则说明一切正常。

好了,基本的数据库已经准备就绪,下一章我们会讲到如何往数据库里面录入数据。进入下一章


题图来源:Designed by Freepik

ElasticSearch官方教程:点此进入
Kibana官方教程:点此进入