常見的日志系統是基於logstach+elasticsearch+kibna框架搭建的,但是有時候kibana的查詢無法滿足我們的要求,因此有時需要代碼去操作es,本文后續都以es代替elasticsearch。
一.es基本概念理解
索引:含有相同屬性的文檔的集合.(可理解為數據庫database)
類型:索引可以定義一個或多個類型,文檔必須屬於一個類型。(可以想象成數據庫中的表table)
文檔:文檔是可以被索引的基本數據單位。(可以想象成數據庫表中的一條數據)
分片:每一個索引有多個分片,每個分片都是一個Lucene索引。
備份:拷貝一份備份就完成了分片的備份。
注意:每創建一個索引默認會創建5個分片和一個備份,當主分片出問題時,備份可以代替工作;備份的分片還可以執行搜索操作。
二.es單機搭建
如果要使用springboot操作es,最好下載es版本時按照以下表格來下載。
安裝包下載好后解壓,然后執行bin/elasticsearch即可,最后訪問http://localhost:9200/判斷是否安裝成功。
如果想更方便的操作es可以下載一個elasticsearch-head,安裝好訪問界面大致如下圖,本文暫不介紹es-head。
三.springboot操作es
1.使用curl -X PUT "localhost:9200/teststudent12"創建索引,參數如下:
{
"order":0,
"template":"ll*",
"settings":{
"index":{
"number_of_shards":"4",
"number_of_replicas":"1"
}
},
"mappings":{
"StudentTestVo":{
"dynamic_templates":[
{
"string_fields":{
"mapping":{
"analyzer":"only_words_analyzer",
"index":"analyzed",
"type":"keyword",
"fields":{
"raw":{
"ignore_above":512,
"index":"not_analyzed",
"type":"string"
}
}
},
"match_mapping_type":"string",
"match":"*"
}
}
],
"properties":{
"name":{
"type":"text"
},
"grade":{
"type":"text"
},
"age":{
"type":"short"
},
"date":{
"type":"date"
}
}
}
},
"aliases":{
}
}
2.創建索引成功后,編寫代碼操作es,代碼可以加公眾號 碼農獨白 下載。