數據分類
- 結構化數據
- 非結構化數據
- 半結構化數據
Elastic Stack 的核心

ElasticSearch 安裝
es 的光放地址: https://www.elastic.co/cn/
下載版本: 7.8.0
啟動文件

注意: 9300端口為ES 集群間組件的通信端口,9200端口為瀏覽器訪問的http協議Restful端口

問題解決
打不開?
ElasticSearch 是使用java開發的,且7.8版本的ES 需要JDK 版本1.8以上,默認安裝包帶有jdk環境,如果系統配置JAVA_HOME,name使用
默認的JDK,如果沒有配置使用自帶的JDK,一般建議使用系統配置的JDK
雙擊啟動窗口閃退?
通過路徑追蹤錯誤,如果是"空間不足",請修改
config/jvm.options配置文件
# 設置JVM 初始內存為1G,此值可以設置與-Xmx相同,以避免每次垃圾回收完成后JVM重新分配內存
# 設置JVM最大可用內存為1G
-Xmslg
-Xmxlg
ES 數據格式
Elasticsearch 是面向文檔型數據庫,一條數據在這里就是一個文檔

ES 里的Index 可以看做是一個庫,而Types相當於表,Documents則相當於表的行
這里Types的概念已經被逐漸弱化,ES6.x中,一個index下已經只能包含一個type,Es7.x中,Type的概念已經被刪除了
倒排索引
通過關鍵字鎖定主鍵索引,從而到處該數據
正排(正向)索引
musql中通過主鍵,鎖定對應數據
ES索引操作
創建索引 PUT
對比關系型數據庫,創建索引就等同於創建數據庫
Postman中向ES 服務器發送PUT請求:http:127.0.0.1:8200/shopping 創建一個shopping的index

獲取某個索引 GET

獲取所有索引 v 表示詳細信息

刪除索引 DELETE

ES 文檔操作
在Postman中 向ES 服務器發送POST請求,http://127.0.0.1:9200/shopping/_doc _doc表示索引中添加文檔

成功后的返回值

_id :數據的隨機唯一標識,類似於主鍵,每次添加都不一樣,當然也可以通過這個標識進行查詢,但是這個_id並不好記,可以自定制

查詢剛剛添加的單條文檔數據
_doc/文檔標識ID

查詢本索引下的所有的文檔數據
_search

修改
完全覆蓋之前的文檔數據
PUT : http://127.0.0.1:9200/shopping/_doc/1001/
需要覆蓋的內容
{"title":"華為手機","price":3999.00,"cateory":"華為"}
局部字段更新
POST http://127.0.0.1:9200/shopping/_doc/1001/
需要更新的字段
{
"doc":{ // doc表示明確指定更新
"title":"華為手機",
"price":399.00
}
}
ES 條件查詢
指定字段查詢
http://127.0.0.1:9200/shopping/_search?q=title:小米
由於url中攜帶中文容易出現亂碼的情況,所以改成通過請求體來發送查詢參數
http://127.0.0.1:9200/shopping/_search
{
"query":{ // query 表示本操作為查詢
"match":{ // match 表示匹配查詢
"title":"小米"
}
}
}
全量查詢 + 分頁
{
"query":{ // query 表示本操作為查詢
"match_all":{ // match_all表示全量查詢,配合分頁查詢
}
},
"from" : 0, // 表示第一頁的起始位置 第二頁為(頁碼-1)*每頁數據條數 (2-1) * 10
"size" : 10, // 每一頁多少條數據
"_source" : ["title"], // 只顯示title字段
"sort" : {
"price":{ // 指定字段進行排序
"order":"desc" // 降序排列
}
}
}
