elasticsearch設定之setting、mapping相關
阿新 • • 發佈:2018-11-19
一、setting相關
1.靜態設定:只能在索引建立時或在狀態為 closed index(閉合索引)上設定
引數 | 說明 |
---|---|
index.number_of_shards | 主分片數,預設為5.只能在建立索引時設定,不能修改 |
index.shard.check_on_startup | 是否應在索引開啟前檢查分片是否損壞,當檢查到分片損壞將禁止分片被開啟。false:預設值;checksum:檢查物理損壞;true:檢查物理和邏輯損壞,這將消耗大量記憶體和CPU;fix:檢查物理和邏輯損壞。有損壞的分片將被叢集自動刪除,這可能導致資料丟失 |
index.routing_partition_size | 自定義路由值可以轉發的目的分片數。預設為 1,只能在索引建立時設定。此值必須小於index.number_of_shards |
index.codec | 預設使用LZ4壓縮方式儲存資料,也可以設定為 best_compression,它使用 DEFLATE 方式以犧牲欄位儲存效能為代價來獲得更高的壓縮比例 |
2.動態設定
引數 | 說明 |
---|---|
index.number_of_replicas | 每個主分片的副本數。預設為 1。 |
index.auto_expand_replicas | 基於可用節點的數量自動分配副本數量,預設為 false(即禁用此功能) |
index.refresh_interval | 執行重新整理操作的頻率,這使得索引的最近更改可以被搜尋。預設為 1s。可以設定為 -1 以禁用重新整理。 |
index.max_result_window | 用於索引搜尋的 from+size 的最大值。預設為 10000 |
index.max_rescore_window | 在搜尋此索引中 rescore 的 window_size 的最大值 |
index.blocks.read_only | 設定為 true 使索引和索引元資料為只讀,false 為允許寫入和元資料更改。 |
index.blocks.read | 設定為 true 可禁用對索引的讀取操作 |
index.blocks.write | 設定為 true 可禁用對索引的寫入操作 |
index.blocks.metadata | 設定為 true 可禁用對索引元資料的讀取和寫入 |
index.max_refresh_listeners | 索引的每個分片上可用的最大重新整理偵聽器數 |
二、mapping相關
1.基本資料型別
型別 | 說明 |
---|---|
字串型別 | string,text,keyword |
整數型別 | integer,long,short,byte |
浮點型別 | double,float,half_float,scaled_float |
邏輯型別 | boolean |
日期型別 | date |
範圍型別 | range |
二進位制型別 | binary |
2.字串型別
(1)string
string型別在ElasticSearch 舊版本中使用較多,從ElasticSearch 5.x開始不再支援string,由text和keyword型別替代。
(2)text
當一個欄位是要被全文搜尋的,比如Email內容、產品描述,應該使用text型別。設定text型別以後,欄位內容會被分析,在生成倒排索引以前,字串會被分析器分成一個一個詞項。text型別的欄位不用於排序,很少用於聚合。
(3)keyword
keyword型別適用於索引結構化的欄位,比如email地址、主機名、狀態碼和標籤。如果欄位需要進行過濾(比如查詢已釋出部落格中status屬性為published的文章)、排序、聚合。keyword型別的欄位只能通過精確值搜尋到。
3.字串型別可接受引數
三、analysis相關