Contents
  1. 1. Elastic Search 安装教程
    1. 1.1. 学习Elastic Search的契机
    2. 1.2. 下载/安装Elastic Search
    3. 1.3. 安装Elastic Search中文分词插件IK
    4. 1.4. 后话

Elastic Search 安装教程

本文是俺在学习Elastic Search时安装的一些步骤和教程, 包括了对于ES中的分词插件的安装等等.

学习Elastic Search的契机

源自我在学校时的一个开源项目: 木犀课栈, 不知道以后看到这个文章的时候这个项目是否还在hhh, 暂且纪念一下吧… 当时要满足对于课程的搜索, 大致的场景如下:

  • 支持全文搜索(对于课程名, 开课教师名, 课程号)
  • 支持对于tag的检索
  • 支持多种筛选条件

当时适逢老板(zxh)送给我一本<<高性能MySQL>>(o’reilly Baron Scbwartz等, High Performance MySQL), 我就使用了MySQL里的FULLTEXT(全文索引, 在MySQL 4.x后引入), 结合MATCH和AGAINST两个函数以及多个MySQL函数实现了当时要求的功能. 并且当时觉得自己非常的厉害来着…

使用MySQl+golang编写当时的代码时, 真的是费劲了各种心机, 各种优化, 最终把性能维护在了一个还不错的程度. 当时又恰逢去字节跳动(base武汉)实习, 我的Leader问起我在校内写过的项目, 我就提起了这个搜索的部分, 并且还有点骄傲… ? 因为当时真的想了很多办法去优化.

我的Leader听我讲了一下情况, 就问我为什么不用ES, 我当时知道ES是一个搜索引擎, 但是觉得太重了, 所以就说因为ES太重了所以没有尝试, 后来Leader说ES一点儿也不重, 可以试一试. 于是有了后来学习ES的过程.

(后来发现ES对于我们这种校内的团队的情况还是很重的, 干, 根本负担不起)

Elastic Search是一个完全开源的搜索引擎, 基于Lucene, 集成了RESTful的API调度方式, 官网上可以下载对应的安装包, 我当时下载的是7.5.2版本(我在写这篇文章的时候已经是7.6.0版本了, 可以看出还是比较活跃的), 由于各个版本ES有比较大的改动, 因此还是建议下载最新的版本.

当然, 不管是哪个版本的ES都是稳定的, 因此你也可以选择下载比较小的ES 2.x来进行测试和部署, 网络上有各个版本的ES的文档, 都可以很好的进行查阅.

(下载的时候由于墙的原因会比较慢, 因此建议开梯子进行下载)

下载好之后进行解压:

1
tar -xzvf elasticsearch-7.5.2-linux-x86_64.tar.gz

解压后进入文件夹内, 直接运行二进制的文件:

1
cd elasticsearch-7.5.2 && ./bin/elasticsearch

然后就会运行起来啦~但是需要JDK-8, 建议提前安装好哦~

安装Elastic Search中文分词插件IK

ES对于存储数据的内容进行全文索引, 这其中很重要的一环就是需要对于内容进行分词, 只有在进行适当的分词之后才可以建立合适的索引, 否则就无法进行全文检索.

我们从ES官网下载的文件中并没有自带中文的分词插件, 这个时候就需要我们进行手动安装了, 我下载使用的是ik, 好在ES给我们提供了很便捷的安装插件的功能:

1
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.5.2/elasticsearch-analysis-ik-7.5.2.zip

然后我们在使用ES的时候就可以通过tokenizer字段来指定对应安装的分词器了.

后话

随着我对于ES的学习越来越深入, 我发现相比起之前使用了大量的原生SQL语句和各种优化技巧相比, 直接使用ES是更加的轻松和方便的. 而且ES提供了人性化的RESTful API和很强大的检索功能, 很适合我当时的应用场景.

但是在我盲目开心的时候, 发现了一个很致命的问题: ES对于内存的需求不是我们这个团队当前的条件可以负担的起的… 所以没有办法我最后还是使用了之前的版本.

虽然很可惜, 但是以后在我漫长的开发生涯中, 我一定有机会能够使用ES, 能够和这个能够为我提供简便全文检索的朋友相见, 就这样.

– 2020.02.28

Contents
  1. 1. Elastic Search 安装教程
    1. 1.1. 学习Elastic Search的契机
    2. 1.2. 下载/安装Elastic Search
    3. 1.3. 安装Elastic Search中文分词插件IK
    4. 1.4. 后话