本文首發于公眾號:Hunter后端
原文鏈接:es筆記一之es安裝與介紹
首先介紹一下 es,全名為 Elasticsearch,它定義上不是一種資料庫,是一種搜索引擎,
我們可以把海量資料都放到 es 里然后提供搜索操作,但是 MySQL 也同樣可以提供搜索,為什么要用 es 呢?
一個是因為它搜索快,使用倒排索引的方式將資料分詞之后存盤資料,查詢的時候直接根據搜索關鍵詞找到相關資料,
另一個是因為它可以提供一些 MySQL 做不到或者比較耗時的模糊搜索,這個我們后續再介紹,
1、es 和 kibana 的安裝
es 和 kibana 的安裝這里可以直接看我之前的一篇博客文章,講的很詳細,或者去官網找相應的安裝步驟,
es和kibana安裝
這里我們使用的是 7.6.0 版本,
kibana 是一個界面工具,可以用于在瀏覽器界面直接操作 es,
2、es 層級和結構介紹
首先,我們進入 kibana 界面,創建一條資料,然后根據這條資料來介紹 es 中結構的層級關系,
進入 kibana 的輸入界面,輸入:
PUT /customer/_doc/1
{
"name": "John Doe"
}
點擊 PUT 命令同行右邊的三角形,或者按住 ctrl + enter 確認,我們就完成了一次資料的創建,
然后輸入下面的命令查看這條資料的詳情:
GET /customer/_doc/1
通過資料的存盤和查看,我們可以差不多了解 es 中資料的操作方式是 restful 風格的,可以通過 GET、PUT、POST、DELETE 的方式來實作資料的增刪改查,
然后看一下我們通過 GET 方式獲得的資料情況,如下:
{
"_index" : "customer",
"_type" : "_doc",
"_id" : "1",
"_version" : 1,
"_seq_no" : 0,
"_primary_term" : 1,
"found" : true,
"_source" : {
"name" : "John Doe"
}
}
在這個資料結構中,有一些東西是可以和 MySQL 等資料庫的結構對應起來的,比如 index 對應 MySQL 中的 database,type 對應 MySQL 中的 table,而 source 中的資料則對應于 MySQL 中一條條的資料,
但是 es 中 source 中的這些欄位,比如 name,可以不預先定義,也可以預先定義,這一點不同于 MySQL,es 甚至可以直接寫入值,es 會自動為其找到對應的欄位屬性從而定義,
比如我們前面 PUT 的這條資料,查看 customer 這個資料庫 index 的結構,可以看到 es 根據值為其自動創建了屬性為 keyword,(es 中欄位的各個屬性我們后面再介紹)
怎么查看 es 中 index 各個欄位的屬性呢,比如 customer,如下操作:
GET /customer/_mapping
index 和 type 也一樣,如果創建資料的時候不存在,那么 es 也會自動為我們創建相應的層級結構,
3、es 欄位介紹
es 中的欄位型別挺多的,一般計算機語言有的 es 中也有,
keyword
常用于存盤結構化內容,比如email地址,電話號碼,名稱等等
text
文本型別,常用于保存大段文本,然后可以進行分詞搜索等操作
integer
整數
long
浮點型資料
date
日期格式,比如 '2022-01-01 12:00:00'
boolean
布爾型,true/false
陣列
es 中沒有單獨的陣列型別,但是當我們確定將某個欄位作為陣列之后,可以直接將其作為陣列使用,但是添加的元素必須是相同的,這個我們后面再介紹,
上面這些欄位的含義和使用,這里只是做一個簡單的介紹,后面尤其是和 Python 連接使用的時候,我們再對其使用方法做具體詳細的介紹,
4、資料準備
在接下來的筆記中,我們將介紹 es 中各種搜索操作,在此之前,我們這里需要手動寫入一批資料,具體操作如下,
首先我們去獲取一個資料檔案,那上面有一批供我們查詢使用的資料,這個檔案之前在官方檔案提供的 github 地址,我去看了下,已經不存在了,所以這里我截取一批資料還是放到名為 accounts.json 檔案里,檔案等會兒我放在文章末尾,可供拷貝,
我們將這個檔案放在某個目錄下,然后當前目錄執行下面的陳述句匯入到我們在本地啟動的 es 中:
curl -H "Content-Type: application/json" -XPOST "localhost:9200/bank/_bulk?pretty&refresh" --data-binary "@accounts.json"
然后進入 kibana,查看所有資料庫,可以看到已經多了一個名為 bank 的資料庫:
GET /_cat/indices
這是 json 檔案的地址:accounts.json
下一篇筆記我們開始介紹 es 的搜索,
如果想獲取更多后端相關文章,可掃碼關注閱讀:
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/556463.html
標籤:其他
上一篇:MySQL學習3--聯表查詢
下一篇:返回列表