ElasticSearch基本使用
- 一、索引
- 1.創建索引
- 2.查看索引
- 3.洗掉索引
- 二、映射
- 1.創建映射
- 2.新增資料
- 2.1 隨機生成id
- 2.2 指定id
- 3. 修改資料
- 4.洗掉資料
- 三、總結
一、索引
1.創建索引
創建索引的請求格式:
-
請求方式:PUT
-
請求路徑:/索引庫名
e.g: 192.168.142.128:9200/youshop
-
請求引數:json格式:
{ "settings": { "number_of_shards": 1, # 分片數量 "number_of_replicas": 0 # 副本數量 } }
2.查看索引
GET /索引名
3.洗掉索引
DELETE /索引名
二、映射
什么是映射?
映射是定義檔案的程序,檔案包含哪些欄位,欄位是否store, 是否index, 是什么型別的資料, 是否分詞等資訊
操作映射前,我們需先了解ES中常見的資料型別,

我們說幾個關鍵的:
-
String型別,又分兩種:
- text:可分詞,不可參與聚合
- keyword:不可分詞,資料會作為完整欄位進行匹配,可以參與聚合
-
Numerical:數值型別,分兩類
- 基本資料型別:long、interger、short、byte、double、float、half_float
- 浮點數的高精度型別:scaled_float
- 需要指定一個精度因子,比如10或100,elasticsearch會把真實值乘以這個因子后存盤,取出時再還原,
-
Date:日期型別
elasticsearch可以對日期格式化為字串存盤,但是建議我們存盤為毫秒值,存盤為long,節省空間,
1.創建映射
PUT /索引庫名/_mapping/型別名稱
{
"properties": {
"欄位名": {
"type": "型別",
"index": true,
"store": true,
"analyzer": "分詞器"
}
}
}
- 型別名稱:就是前面將的type的概念,類似于資料庫中的不同表(在ES7之后已洗掉)
欄位名:任意填寫 ,可以指定許多屬性,例如: - type:型別,可以是text、long、short、date、integer、object等
- index:是否索引,默認為true,是否可用于檢索
- store:是否存盤,默認為false
- analyzer:分詞器,這里的
ik_max_word即使用ik分詞器
2.新增資料
2.1 隨機生成id
通過POST請求,可以向一個存在的索引庫中添加資料,
在添加資料時,如果不指定id,則會使用隨機生成的id
POST /索引庫名/型別名
{
"title": "小米手機",
"images": "http://image.youshop.com",
"price": 2699.00
}
2.2 指定id
如果想要自己新增的時候指定id,可以在請求路徑后面拼接上id,如果id不存在,則新增,如果id存在,則修改資料
POST /索引庫名/型別/id值
{
"title": "iphone xs max",
"price": 8848.00,
"images": "www.iphone.com",
"saleable": true # 我們在新建映射時,并未指定該欄位,ES會根據輸入的資料來判斷型別,動態添加到資料映射關系中,
}
3. 修改資料
把剛才新增的請求方式改為PUT,就是修改了,不過修改必須指定id,
其實post和put請求都可以修改資料,但PUT必須指定id
| ---- | 指定id | 不指定id |
|---|---|---|
| PUT | 有則修改,無則新增 | 報錯 |
| POST | 有則修改,無則新增 | 新增,使用隨機id |
何為冪等性?
無論操作多少次,其結果都是與第一次的操作是一樣的,
PUT和DELETE一樣,都是冪等性的,是操作在具體的檔案之上的,而POST是非冪等性的,操作在檔案集合之上的,
4.洗掉資料
DELETE /索引庫名/型別名/id值
三、總結
本文章介紹了ElasticSearch的基本使用,從如何創建一個索引,到新建映射,再到對索引庫下的型別中的檔案的增刪改其實都是非常容易的,ES中最難的部分就是DSL查詢陳述句了,將在下一篇文章中進行學習,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/263043.html
標籤:其他
上一篇:位元組跳動Android高工面試官現身說法,深度解密大廠面試套路,贏在起跑線!
下一篇:ubuntu安裝redis
