ElasticSearch的簡介網上一搜一大堆,這裏就不贅述了
ES的簡單應用:
一、es的部署,和插件kibana的安裝:
去官網下載:https://www.elastic.co/cn/downloads/elasticsearch
最新的是7.x版本,需要jdk1.8及以上纔可以
下載完打開這個bat文件即可啓動服務
127.0.0.1:9200 輸入網址測試一下
出現這個標誌就算成功了
二、kibana插件的使用和安裝
安裝地址:https://www.elastic.co/cn/downloads/kibana
這裏需要選擇與es版本一樣的kibana,下載好的加載包解壓到es文件下即可
kibana-7.7.1-windows-x86_64/bin下的kibana.bat文件是啓動文件
啓動後輸入網址 http://localhost:5601
成功!
我的kibana是漢化的,漢化方法如下:
打開kibana-7.7.1-windows-x86_64\config文件下的kibana.yml文件,這個是配置文件
輸入下面這個指令並保存,然後重啓kibana就可以了
i18n.locale: "zh-CN"
三、接下來是使用es,這裏是go的代碼
/*7.x*/
const Mapping = `{
"settings":{
"number_of_shards": 1,
"number_of_replicas": 0
},
"mappings":{
"properties":{
"user":{
"type":"keyword"
},
"message":{
"type":"text",
"store": true,
"fielddata": true
}
}
}
}`
/*6.x*/
const testMapping = `{
"settings":{
"number_of_shards": 1,
"number_of_replicas": 0
},
"mappings":{
"_doc":{
"properties":{
"user":{
"type":"keyword"
},
"message":{
"type":"text",
"store": true,
"fielddata": true
}
}
}
}
}`
創建索引的時候,7.x版本和6.x版本是不一樣的,7.x版本沒有 [_doc]的
根據官方文檔,創建索引的操作如下
exists, err := esClient.IndexExists(index).Do(ctx)
if err != nil {
log.Error( "ESCreatIndex exists failed!")
return err
}
if !exists {
createIndex, err := esClient.CreateIndex("test_index").BodyString(Mapping).Do(ctx)
if err != nil {
return err
}
if !createIndex.Acknowledged {
//dosomething
}
}
put和get數據的操作是:
test1 := testType{
User: "test1",
Message: "hello test1",
}
put1, err := esClient.Index().Index("test_index").Id("1").BodyJson(test1).Do(ctx)
if err != nil {
t.Error(err)
t.FailNow()
}
get1, err := esClient.Get().
Index("test_index").
Id("1").
Do(ctx)
if err != nil {
// Handle error
panic(err)
}
val, err := get1.Source.MarshalJSON()
if err != nil {
t.Log(err)
t.FailNow()
}
//打印val