當前位置:網站首頁>Es簡介和基本增删查改
Es簡介和基本增删查改
2022-01-27 06:42:53 【A1L__】
Es簡介
- Elasticsearch 是一個基於Lucene的分布式搜索和分析引擎
- Elasticsearch是一個開源的高擴展的分布式全文檢索引擎,它可以近乎實時的存儲、檢索數據;本身擴展性很好,可以擴展到上百臺服務器,處理PB級別的數據
- Java開發,在Apache開源協議
- 使用Lucene作為其核心來實現所有索引和搜索的功能,但是它的目的是通過簡單的RESTful API來隱藏Lucene的複雜性,使得全文檢索變得簡單
一、Es核心概念
-集群:單臺機器,多臺機器
-節點:集群中的每一臺機器叫一個節點
-分片:數據可以分為較小的分片。每個分片放到不同的服務器上
-副本:
-全文檢索:
二、ELK是什麼:做日志收集和分析
ELK=elasticsearch+Logstash+kibana
elasticsearch:後臺分布式存儲以及全文檢索
logstash: 日志加工、“搬運工”
kibana:數據可視化展示。
ELK架構為數據分布式存儲、可視化查詢和日志解析創建了一個功能强大的管理鏈。 三者相互配合,取長補短,共同完成分布式大數據處理工作。
Es的安裝
一、安裝java的jdk
二、下載es版本,解壓,bin路徑下,elastcsearch.bat
三、測試時候安裝成功
他有兩個端口還有一個是9300,9300是做集群交互的端口,9200是外部可以訪問的端口
安裝成功後,可以直接在瀏覽器訪問
四、Kibana(類似於Postman)
4.1Kibana介紹
Kibana是一個開源的分析和可視化平臺,設計用於和Elasticsearch一起工作。
你用Kibana來搜索,查看,並和存儲在Elasticsearch索引中的數據進行交互。
你可以輕松地執行高級數據分析,並且以各種圖標、錶格和地圖的形式可視化數據。
Kibana使得理解大量數據變得很容易。它簡單的、基於瀏覽器的界面使你能够快速創建和共享動態儀錶板,實時顯示Elasticsearch查詢的變化。
Kibana一定要和Es版本對應,這裏使用的是7.5
4.2kibana安裝(postman)
1 客戶端:瀏覽器,postman,kibana,elasticsearch-head(沒有桌面版客戶端)
2 官方提供的
-Kibana 是一款開源的數據分析和可視化平臺
-Kibana一定要跟es版本對應,咱們用的都是7.5.0
3 解壓,就可以運行
4 連接es,需要配置
-修改kibana配置
# kibana監聽的端口和地址
server.port: 5601
server.host: "127.0.0.1"
server.name: Ne
# 連接哪個es
elasticsearch.hosts: ["http://localhost:9200/"]
運行KIbana
如果部署後出現問題
一、並且es顯示已經連接上,一般是上一個出現問題,我們需要在進程中,找到node並結束掉
二、斷開es的kibana索引
cmd
curl -XDELETE http://localhost:9200/.kibana*
三、重新啟動kibana
成功
4.3 elasticsearch-head安裝
1 第三方開發的一個es客戶端(nodjs開發的,裝node環境),kibana是官方的所以不存在跨域
2 下載,解壓
3 npm install 安裝依賴
4 npm run serve 跑起來
5 會出現跨域,修改es配置
http.cors.enabled: true
http.cors.allow-origin: "*"
6 瀏覽器輸入
http://localhost:9100/
一、當我們跑起來時,
二、現在去Es配置中解决跨域問題
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-Bvzx5R9n-1613748063148)(C:\Users\S\AppData\Roaming\Typora\typora-user-images\image-20210219173057034.png)]
重啟ES
三、查看Es-Head
kibana的配置信息
至此兩個都裝完了,Kibana主要做查詢和搜索,兩個都是客戶端,head有一個概覽,儀錶盤,方便查看。kibana沒有
Es安裝官方,第三方插件
推薦用第三種,因為前兩種都比較慢,由於網絡原因,但是我選擇第一種
第一種:命令行
bin/elasticsearch-plugin install [plugin_name]
bin/elasticsearch-plugin install analysis-smartcn 安裝中文分詞器
第二種:url安裝
bin/elasticsearch-plugin install [url]
#bin/elasticsearch-plugin install https://artifacts.elastic.co/downloads/elasticsearch-plugins/analysis-smartcn/analysis-smartcn-6.4.0.zip
第三種:離線安裝
https://artifacts.elastic.co/downloads/elasticsearch-plugins/analysis-smartcn/analysis-smartcn-6.4.0.zip
- 點擊下載analysis-smartcn離線包
- 將離線包解壓到ElasticSearch 安裝目錄下的 plugins 目錄下
- 重啟es。新裝插件必須要重啟es
**注意:插件的版本要與 ElasticSearch 版本要一致**
倒排索引
簡單來說就是根據內容定比特到標題,通過書中的關鍵字,文本信息,定比特到書名,然後返回,只不過其中做了很多優化,比如數據的高可用,切片式複制到從節點等等
1 倒排索引:對文章進行分詞,對每個詞建立索引,由於這樣建,會出現索引爆炸,索引索引跟標題建關系,標題再跟文章建索引,如下:
分詞---文章建立索引 |
| 今天(索引) | (文章1,<2,10>,2) (文章3,<8>,1) |
| 星期天(索引) | (文章2,<12,25,100>,3) |
| 出去玩(索引) | (文章5,<11,24,89>,3)(文章1,<8,19>,2) |
今天出現在哪個文章,出現的比特置和出現的次數
索引操作(數據庫操作)
PUT ne
{
"settings": {
"index":{
"number_of_shards":5, # 索引分片數量,理論上一個能存21E個文檔 5個也就是105E
"number_of_replicas":1 # 索引副本數量
}
}
}
PUT ne2
'''
number_of_shards
每個索引的主分片數,默認值是 5 。這個配置在索引創建後不能修改。
number_of_replicas
每個主分片的副本數,默認值是 1 。對於活動的索引庫,這個配置可以隨時修改。
'''
方式一----head
方式二—kibana
查看
查看索引
# 查看索引
GET ne2/_settings
GET ne/_settings # 查看指定
GET _all/_settings # 查看所有
GET ne,ne2/_settings # 查看ne和ne2的setting配置
GET _settings # 產看所有
修改索引
修改主要是修改索引的副本,分片不能修改,一般不用,名字也不能改
# 修改索引(一般不太用,只能用來修改副本數量)
#修改索引副本數量為2 分片的數量一開始就要定好
# 副本數量可以改(有可能會出錯)
PUT lqz/_settings
{
"number_of_replicas": 2
}
# 如果出錯 就修改一下配置
PUT _all/_settings
{
"index": {
"blocks": {
"read_only_allow_delete": false # 索引只允許讀和删
}
}
}
删除索引
DELETE ne
也可以在head中删除
映射管理(類型)(錶)
創建映射
索引如果不創建,只有插入文檔,會自動創建
PUT books # 創建索引books 然後裏面有那麼多字段
{
"mappings": {
"properties":{
"title":{
# 字段
"type":"text", # 類型
"analyzer": "ik_max_word" # 用ik做分詞
},
"price":{
"type":"integer"
},
"addr":{
"type":"keyword" # 不分詞 直接建立索引
},
"company":{
# 複雜類型 裏面仍存放字典或列錶
"properties":{
"name":{
"type":"text"},
"company_addr":{
"type":"text"},
"employee_count":{
"type":"integer"}
}
},
"publish_date":{
"type":"date","format":"yyy-MM-dd"}
}
}
}
# 後續把注釋删掉
查看映射
GET books/_mapping
GET _all/_mapping
特殊說明
索引映射都不存在,也可以插入文檔,也就是說他會自動幫你創建好索引和映射
PUT xxx/_doc/1
{
"title":"白雪公主和十個小矮人",
"price":"99",
"addr":"黑暗森裏",
"publish_date":"2018-05-19",
"name":"lqz"
}
# 查看索引
GET lqz/_settings
#查看映射
GET lqz/_mapping
修改映射的規則是: 可以添加新字段,已有字段不允許修改。如果說要涉及修改mapping結構的,有兩種解决方案,一種是,新建索引然後進行數據遷移,還有一種是索引映射
文檔基本增删查改(一行一行數據)
插入文檔
PUT books/_doc/1
{
"title":"大頭兒子小偷爸爸",
"price":100,
"addr":"北京天安門",
"company":{
"name":"我愛北京天安門",
"company_addr":"我的家在東北松花江傻姑娘",
"employee_count":10
},
"publish_date":"2019-08-19"
}
PUT books/_doc/2
{
"title":"白雪公主和十個小矮人",
"price":"99", #寫字符串會自動轉換
"addr":"黑暗森裏",
"publish_date":"2018-05-19"
}
PUT books/_doc/3
{
"title":"白雪公主和十個小矮人",
"price":"99", #寫字符串會自動轉換
"addr":"黑暗森裏",
"publish_date":"2018-05-19",
"name":"lqz"
}
數據存放之後,我們可以通過head來查看我們的數據
查詢文檔
GET books/_doc/1
修改文檔
方式一 直接覆蓋
PUT books/_doc/1
{
"title":"三體",
"price":"99", #寫字符串會自動轉換
"addr":"china",
"publish_date":"2018-05-19",
"name":"lcx"
}
方式二 局部修改
POST books/_doc/1/_update
{
"doc": {
"addr":"china",
"price":"8888888", # 會自動進行格式轉化
}
}
POST books/_update/1 # 推薦使用方法
{
"doc": {
"addr":"china",
"price":"8888888"
}
}
删除文檔
DELETE books/_doc/4
文檔查詢–基礎
###查詢字符串
# 查詢from字段是gu的所有人
GET lqz/_doc/_search?q=from:gu
# 查詢age是22的人
GET lqz/_doc/_search?q=age:22
GET lqz/_doc/_search?q=desc:不知道
###結構化查詢
GET lqz/_doc/_search
{
"query": {
"match": {
"from": "gu"
}
}
}
GET lqz/_doc/_search
{
"query": {
"match": {
"from":"gu"
}
}
}
版權聲明
本文為[A1L__]所創,轉載請帶上原文鏈接,感謝
https://cht.chowdera.com/2022/01/202201270642528316.html
邊欄推薦
猜你喜歡
隨機推薦
- uniapp上傳圖片及組件傳值
- 瑞利年金險資金保障安全嗎?收益高不高啊?
- 華為手機USB連不上電腦的解决方法
- Flutter 2,移動金融應用開發
- 關於st25系列NFC標簽簡單介紹及st25TV系列用於門禁讀取時的注意事項總結
- 關於用ffmpeg轉手機視頻發現視頻長寬倒了的問題
- 函數 / 類模板--模板2
- 數組中的第k個最大的元素--優先級隊列、排序、堆、排序
- 單片機實例27——ADC0809A/D轉換器基本應用技術(硬件電路圖+匯編程序+C語言程序)
- Collection集合的學習
- 一場面試結束,某度員工從事Android 5年為何還是初級工程師?
- 3本書閱讀筆記【人月神話-Go語言實戰-研發能力持續成長路線】01
- PHP垃圾回收機制
- 【電子技術】什麼是LFSR?
- 死鎖?如何定比特到死鎖?如何修複死鎖?(jps和jstack兩個工具)
- 快樂寒假 22/01/20
- image
- 噴程序員?SURE?
- LDO分壓電阻計算小工具
- 面試之求一串字符串中每個字符的出現次數
- 【ISO15765_UDS&OBD診斷】-01-概述
- 【Mysql上分之路】第九篇:Mysql存儲引擎
- RHCE 第一次作業
- 2021.10.16我的第一篇博客:一切皆有可能!
- CTA-敏感行為-讀取IMEI
- 面試被問怎麼排查平時遇到的系統CPU飆高和頻繁GC,該怎麼回答?
- nuxt項目總結-綜合
- 自然語言處理學習筆記(一)
- C語言第一課
- 各比特大佬,Spark的重點難點系列暫時更新完畢
- 基於 esbuild 的 universal bundler 設計
- XCTFre逆向(四):insanity
- 理解什麼是真正的並發數
- JVM腦圖
- 【Pytorch(四)】學習如何使用 PyTorch 讀取並處理數據集
- 函數棧幀的創建與銷毀
- 構建神經網絡- 手寫字體識別案例
- 多模態生成模型ERNIE-VILG
- kotlin不容忽視的小細節
- 備戰一年,終於斬獲騰訊T3,我堅信成功是可以複制的