一、go-elasticsearch的概述
go-elasticsearch是一個用於構建Elasticsearch客戶端的Golang庫。它通過Elasticsearch REST API與Elasticsearch集群進行通信,支持大部分的Elasticsearch功能,並提供了額外的功能以便更容易地使用Elasticsearch集群。
在使用go-elasticsearch之前,需要先安裝Elasticsearch。安裝完畢之後,就可以使用go-elasticsearch與Elasticsearch進行通信。下面介紹go-elasticsearch的一些常用方法。
二、go-elasticsearch的常用方法
1、Create Index方法
該方法用於創建一個索引。
func createIndex(es *elasticsearch.Client, indexName string) (*esapi.Response, error) { req := esapi.IndicesCreateRequest{ Index: indexName, } res, err := req.Do(context.Background(), es) if err != nil { return nil, err } return res, nil }
將上述代碼保存為create_index.go文件,然後使用go run create_index.go命令便可以創建一個名為”test_index”的索引。
2、Delete Index方法
該方法用於刪除一個索引。
func deleteIndex(es *elasticsearch.Client, indexName string) (*esapi.Response, error) { req := esapi.IndicesDeleteRequest{ Index: []string{indexName}, } res, err := req.Do(context.Background(), es) if err != nil { return nil, err } return res, nil }
將上述代碼保存為delete_index.go文件,然後使用go run delete_index.go命令便可以刪除名為”test_index”的索引。
3、Index Document方法
該方法用於將一個文檔加入到指定的索引和類型中。
func indexDocument(es *elasticsearch.Client, indexName string, docID string, docBody map[string]interface{}) (*esapi.Response, error) { req := esapi.IndexRequest{ Index: indexName, DocumentID: docID, Body: esutil.ToJSONReader(docBody), Refresh: "true", } res, err := req.Do(context.Background(), es) if err != nil { return nil, err } return res, nil }
將上述代碼保存為index_document.go文件,然後使用go run index_document.go命令便可以將一個文檔加入到名為”test_index”的索引和類型中。
4、Get Document方法
該方法用於獲取一個文檔。
func getDocument(es *elasticsearch.Client, indexName string, docID string) (*esapi.Response, error) { req := esapi.GetRequest{ Index: indexName, DocumentID: docID, } res, err := req.Do(context.Background(), es) if err != nil { return nil, err } return res, nil }
將上述代碼保存為get_document.go文件,然後使用go run get_document.go命令便可以獲取一個名為”test_doc”的文檔。
三、go-elasticsearch的Template方法
1、Create Index Template方法
該方法用於創建一個索引模板。
func createIndexTemplate(es *elasticsearch.Client, templateName string, body map[string]interface{}) (*esapi.Response, error) { req := esapi.IndicesPutTemplateRequest{ Name: templateName, Body: esutil.ToJSONReader(body), } res, err := req.Do(context.Background(), es) if err != nil { return nil, err } return res, nil }
將上述代碼保存為create_index_template.go文件,然後使用go run create_index_template.go命令便可以創建一個名稱為”my_index_template”的索引模板。
2、Delete Index Template方法
該方法用於刪除一個索引模板。
func deleteIndexTemplate(es *elasticsearch.Client, templateName string) (*esapi.Response, error) { req := esapi.IndicesDeleteTemplateRequest{ Name: []string{templateName}, } res, err := req.Do(context.Background(), es) if err != nil { return nil, err } return res, nil }
將上述代碼保存為delete_index_template.go文件,然後使用go run delete_index_template.go命令便可以刪除名稱為”my_index_template”的索引模板。
3、Get Index Template方法
該方法用於獲取一個索引模板。
func getIndexTemplate(es *elasticsearch.Client, templateName string) (*esapi.Response, error) { req := esapi.IndicesGetTemplateRequest{ Name: []string{templateName}, } res, err := req.Do(context.Background(), es) if err != nil { return nil, err } return res, nil }
將上述代碼保存為get_index_template.go文件,然後使用go run get_index_template.go命令便可以獲取名稱為”my_index_template”的索引模板。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/288852.html