1. ElasticSearch简介

1.1 什么是ElasticSearch?

  • 实时分布式搜索分析引擎
  • 基于​​Lucene​​的搜索服务器。提供了一个分布式多用户能力的全文搜索引擎
  • 基于​​RESTful web​​接口。Elasticsearch是用Java开发的, 是当前流行的企业级搜索引擎。
  • 设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。

1.2 ES特点

  • 开箱即用,部署简单。
  • 可以作为一个大型分布式集群(数百台服务器)技术,处理PB级数据,服务大公司;也可以运行在单机上。
  • ES将全文检索数据分析以及分布式技术,合并在一起。
  • 全文检索,同义词处理,相关度排名,复杂数据分析,海量数据的近实时处理 。

1.3 ES逻辑结构

ElasticSearch

MySQL

索引(index)

数据库(db)

类型(type)

表(table)

文档(document)

行(row)

2. 快速入门

2.1 ElasticSearch安装

我安装的是​​ElasticSearch5.6.8​​的。

​下载链接​

我下载的是​​.zip​​,所以解压之后就可以用了。

  1. 第一步:
cd 安装目录/bin
  1. 第二步: 然后在地址栏中输入​​cmd​

ElasticSearch之简介及快速入门_elasticsearch

  1. 第三步:在命令行窗口中输入​​elasticsearch​​,回车。
  2. 启动成功!

ElasticSearch之简介及快速入门_MySQL_02


因为ES支持Restful,所以我在这里用postman来测试。

端口默认是​​9200​

2.2 新建索引

上边说过索引​​index​​​就相当于​​mysql​​的数据库。下面在ES中新建一个索引。

  • 用​​put​​方式提交
  • ​hello_world_index​​为我们新建的索引名称。

ElasticSearch之简介及快速入门_MySQL_03

2.3 新建文档

文档就相当于​​MySQL​​中的行.

  • 以post方式提交
  • ​http://ip:port/索引名/类型名​
  • body中的内容请选择​​application/json​​格式,其他格式会报错。

ElasticSearch之简介及快速入门_数据库_04

2.4 查询所有文档

  • 查询​​某索引某类型​​的全部数据
  • 以get方式请求
  • ​http://ip:port/索引名/类型名/_search​

ElasticSearch之简介及快速入门_MySQL_05

2.5 修改文档

  • ​put​​方式提交
  • 格式:​​http://ip:port/索引名/类型名/文档_id​
  • ​body​​中填写修改内容
  1. 例如我们要修改​​_id​​​为​​AXE6IQ0gYH-LaeHdYmtp​​的记录:

ElasticSearch之简介及快速入门_elasticsearch_06

  1. 若我们想要修改的​​_id​​​不存在,则会创建新文档,并且新文档的​​_id​​就是你请求url后边的id。

2.6 按ID查询文档

  • get方式请求
  • 格式:​​http://ip:port/索引名/类型名/id​

例如我们要查询​​_id​​​为​​AXE6IQ0gYH-LaeHdYmtp​​的记录:

ElasticSearch之简介及快速入门_MySQL_07

2.7 基本匹配查询

  • 根据某列进行查询
  • get方式提交
  • 格式:​​http://ip:port/索引名/类型名/_search?q=列名:值​

例如查询​​userName​​​ = ​​aaaa​​的文档:

ElasticSearch之简介及快速入门_elasticsearch_08

2.8 模糊查询

可以使用*代表任意字符:

  • 格式:​​http://ip:port/索引名/类型名/_search?q=列名:值​
  • 将url中的​​值​​​部分插入​​*​​达到模糊匹配的效果。

例如:查询​​userName​​​开头是​​aa​​的文档。

ElasticSearch之简介及快速入门_搜索引擎_09

2.9 删除文档

  • 根据ID删除文档
  • delete方式提交
  • 格式:​​http://ip:port/索引名/类型名/文档id​

例如我们要删除​​_id​​​为​​AXE6IQ0gYH-LaeHdYmtp1​​的记录

ElasticSearch之简介及快速入门_MySQL_10

**注意观察:**相应的数据中,​​result​​字段标识我们所作的操作。


ES的基本操作到这里算是结束了。

其实这样操作很麻烦,工作中往往会用一些插件,比如​​Head​​插件。