🎙️

Elastic Search

语言
java
业务
数据处理
搜索引擎

安装 ES

一个分布式的、RESTful 的搜索和数据分析的引擎
  1. 安装 java(因为 ES 的安装包本质上是一堆 java 文件):brew cask install java
  1. 下载 ES 的 Mac 版 curl https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.16.2-linux-x86_64.tar.gz -o elasticsearch.tar.gz
  1. 解压文件,示例: tar -xvf elasticsearch.tar.gz
  1. 进入解压出来的文件夹,执行 bin/elasticsearch,等待 ES 运行起来
  1. 用浏览器访问 http://localhost:9200/,会看到 ES 返回的信息
配置项在 config/ 目录下,可以去探索一下。
🏚️
问题记录

安装 Kibana

ES的GUI界面
  1. 下载 Mac 版安装包curl https://artifacts.elastic.co/downloads/kibana/kibana-7.16.2-linux-x86_64.tar.gz -o kibana.tar.gz
  1. 解压,示例:tar -xvf kibana.tar.gz
  1. 进入解压出来的文件夹,执行 bin/kibana
  1. 用浏览器访问 http://localhost:5601
Kibana 通过上面提到的 localhost:9200 访问 ES 。如果在 ES 的配置项中更改了 ES 的端口或绑定的 IP,那么需要在 Kibana 的 config/kibana.yml 中总结指明这个修改。
 

增删改查

 
1. 增 - Create:
首先说,ES 中存储的是一个一个的 JSON document(这一点和 mongoDB 有点像),你要 Create 一个 document,就把一个 JSON 发给 ES,语法是这样的:
POST /your_index/some_type { "name": "Li Lei", "location": "the Earth" }
其中 POST 代表“创建”动作;your_index 代表索引,这个索引不用事先创建,这是非关系型数据库的优势;some_type 是 document 的类型。索引和类型都可以替换为你想要的名字。
在 Kibana 中执行这个语句,会得到 ES 的返回如下:
notion image
 
哦,对了,ES 官网上说自己是 RESTful 的引擎,不是瞎说的,他们真的用 RESTful 的模式来设计自己的增删改查语法,比如上面的 POST 语法。可以想见,按照 RESTful 的模式,在查改删的时候,ES 会用 (GET、PUT、DELETE) /index/type/:id 这样形式的语法。
在 Kibana 中执行的语句,本质上是往 ES 中发送了一个 http 请求。如果你不想使用 Kibana,完全可以用别的工具发送这个 http 请求,比如 cURL,或 postman:
curl -XPOST "http://localhost:9200/your_index/some_type" -H 'Content-Type: application/json' -d' { "name": "Li Lei", "location": "the Earth" }'
2. 查 - Read
就像 MySQL 等数据库中,查的需求是最多样的(各种表的联合,条件筛选等),ES 中也是。我们这里只介绍最基本的查询:
GET /your_index/some_type/dqJTKGYBHQF78ND_EEzo
请留意一下上图中的红色箭头所指示的 _id ,他就是你的 document 的 id,如果你想按 id 查询(类似于 SQL 中的 where id = ?),那么就要记住这个 id,然后用上面依然很 RESTful 的语法。
当然,你也可以查询一个索引下面的所有 documents:
GET /your_index/_search { "query": { "match_all": {} } }
请到你的 Kibana 中,执行这些语句。
3. 改 - Update
PUT /your_index/some_type/dqJTKGYBHQF78ND_EEzo { "name": "Han Meimei", "location": "the Earth" }
就不多解释了吧。指定 id 下的 document,会被更改成新的 document,同时 _version 会增加 1。
notion image
4. 删 - Delete
DELETE /your_index/some_type/dqJTKGYBHQF78ND_EEzo