Elasticsearch 100问(上)
一、基本概念
1、ElasticSearch是什么:
Elasticsearch是一個分布式的,開源的NoSQL數據庫。通常做為文檔搜索數據庫。
2、什么是索引(indices)
indices分為兩種情況,一指索引,另一個是指往索引里插入數據的動作。索引可理解為類似于關系型數據庫表的概念,而不是網絡上大部分理解的數據庫的概念。索引就是一張分布在不同服務器之上的大表。
3、什么是分片(shards)
一個或多個分片組成一個索引(indices)。理解為關系型數據庫里的水平分表。
4、什么是分段(segment)
一個或多個分段組成一個分片。
5、什么是副本
ES將數據副本分為主從兩部分,即主分片(primary shard)和副分片(replica shard)。
6、什么是分詞器,分詞
分詞是指把一段話或一篇文章通過語義拆分成最小的單詞。分詞器是分詞使用的軟件。
7、什么是倒排索引
倒排索引就像傳統圖書館找書所用到的卡片,需要先按順序找出書名對應的卡片,上面標注書名,然后標注書所在的書架編號,然后通過書架編號才能找到我們需要的書。倒排索引中保存的是分詞跟文檔對應的ID。
8、什么是主節點
主節點的職責是和集群操作相關的內容,如創建或刪除索引,跟蹤哪些節點是群集的一部分并決定哪些分片分配給相關的節點。
9、什么是數據節點
數據節點是存儲索引數據的節點,主要對索引進行增刪改查操作。
10、什么是協調節點
當主節點和數據節點配置都設置為false的時候,該節點只能處理路由請求,處理搜索,分發索引操作。
11、什么是ES集群腦裂
腦裂是指一個集群選舉產生了兩個主節點,設置discovery.zen.minimum_master_nodes: (n/2)+1,n為有資格成為主節點的節點數(node.master=true)就可避免。
12、什么是ES的冷熱架構
Hot-Warm Architecture。熱節點存放用戶最關心的熱數據,搜索速度快;冷節點存放用戶關心優先級低的冷數據,搜索速度慢,冷節點的磁盤與內存比可以比較大,就是同樣的cpu,內存配置,冷節點可以存儲更多的數據。
13、ES模板的作用是什么
當新建一個 ES 索引時,會自動匹配模板,完成索引的基礎部分搭建。很多人ES用了很長的時間,還不知道有模板存在。
14、ES MAPPING作用是什么
映射(mapping)是定義一個文檔以及其所包含的字段如何被存儲和索引的方法。像關系型數據庫的建表語句,ES中會默認創建。
15、keyword與text的區別是什么
ES 5.*之后,把string字段設置為了過時字段,引入text,keyword字段,這兩個字段都可以存儲字符串使用,但建立索引和搜索的時候是不太一樣的
keyword:存儲數據時候,不會分詞建立索引
text:存儲數據時候,會自動分詞,并生成索引(這是很智能的,但在有些字段里面是沒用的,所以對于有些字段使用text則浪費了空間)。
string默認會建立 keyword跟text兩個字段,可以在mapping中設置只保存其中的一個。
16、index.merge.scheduler.max_thread_count參數該怎么設置
數據節點磁盤為sata硬盤的時候,該參數設置為1,磁盤為ssd的時候,可以不用設置,使用默認值。
二、ES模塊
17、Cluster模塊作用是什么?
Cluster模塊是主節點執行集群管理的封裝實現,管理集群狀態,維護集群層面的配置信息。
18、allocation模塊作用是什么?
allocation封裝了分片分配相關的功能和策略。
19、Discovery模塊作用是什么?
Discovery發現模塊負責發現集群中的節點,以及選舉主節點。
20、gateway模塊作用是什么?
gateway負責對收到Master廣播下來的集群元數據的持久化存儲。
21、Indices模塊作用是什么?
Indices索引模塊管理全局級的索引設置。
22、HTTP模塊作用是什么?
HTTP模塊允許通過JSONoverHTTP的方式訪問ES的API,HTTP模塊本質上是完全異步的,這意味著沒有阻塞線程等待響應,使用到Netty框架。
23、Transport模塊作用是什么?
Transport傳輸模塊用于集群內節點之間的內部通信。
24、Engine模塊作用是什么?
Engine模塊封裝了對Lucene的操作及translog的調用,它是對一個分片讀寫操作的最終提供者。
三、ES 常用API
25、health API的作用是什么?
GET _cluster/health顯示ES的健康狀態,RED,YELLOW,GREEN, RED表示集群有主副本和副副本同時沒有分配的情況,YELLOW表示存在副本沒有分配,GREEN表示集群正常。
26、怎么創建索引
PUT 索引名
27、怎么關閉索引
POST 索引名/_close,或者在KIBANA界面manager-index Management中選中索引,關閉。
28、怎么打開索引
POST 索引名/_open,或者在KIBANA界面manager-index Management中選中索引,打開。
29、怎么刪除索引
DELETE 索引名,或者在KIBANA界面manager-index Management中選中索引,刪除。
30、檢查索引名是否存在
HEAD 索引名
31、?help——幫助選項。
將在列表中提供 API 可用的字段,其中包含短名稱和長名稱、說明等。
GET _cat/indices?help
32、?h =-“ h”
使用上方“幫助”顯示中的短名稱或長名稱指定要包括在結果中的字段。這些用逗號分隔,沒有空格。
GET _cat/indices?h=docs.count,store.size
這樣返回結果沒有表頭
33、?v——‘v’
在回復的頂部包括字段名稱。
GET _cat/indices?v&h=docs.count,store.size
34、?s——‘s’
用于排序,使用列出的字段作為排序鍵。
如下所示:我們可能會看到節點列表。包括:返回字段名稱,字段名稱要顯示并按名稱name排序:GET /_cat/nodes?v&h=heap.percent,diskUsedPercent,cpu,master,name&s=name
35、統計所有這些logstash *前綴索引的文檔總數的方法。
GET /_cat/count/logstash*?v
36、通配符索引列表獲取
包含:大小,文檔計數,狀態等。
GET /_cat/indices/logstash*?v
37、找到size 最大的索引
GET /_cat/indices/logstash-*?v&h=index,ss&s=ss:desc
38、查看未分配的分片及原因
GET _cat/shards?v&h=index,shard,prirep,state,unassigned.reason&s=state
39、列舉已定義的所有模板
GET /_cat/templates?v&s=order,name
40、分片分配查看
GET /_cat/allocation?v
41、運行任務查看
GET /_cat/pending_tasks?v
42、清理緩存
POST /_cache/clear
總結
以上是生活随笔為你收集整理的Elasticsearch 100问(上)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Elasticsearch+Kibana
- 下一篇: Elasticsearch 100问(下