# go-elasticsearch **Repository Path**: heyingmin/go-elasticsearch ## Basic Information - **Project Name**: go-elasticsearch - **Description**: 类似grom的 链式语法 极大的简化了es各种操作 - **Primary Language**: Go - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 5 - **Created**: 2023-09-19 - **Last Updated**: 2025-08-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # go-elasticsearch ------------------------ #### 基本使用说明 创建一个索引 ``` err := es.New().Index(index).CreateIndex() if err != nil { fmt.Println(err) } fmt.Println("创建成功") ``` 删除索引 ``` err := es.New().Index(index).DeleteIndex() if err != nil { fmt.Println(err) } fmt.Println("删除成功") ``` 创建一个映射 ``` data := map[string]interface{}{ "title": map[string]interface{}{"type": "text"}, "username": map[string]interface{}{"type": "keyword"}, "mobile": map[string]interface{}{"type": "keyword"}, "age": map[string]interface{}{"type": "long"}, } err := es.New().Index(index).CreateMapping(data) if err != nil { fmt.Println(err) } fmt.Println("创建成功") ``` 查看映射 ``` res, err := es.New().Index(index).GetMapping() if err != nil { fmt.Println(err) } fmt.Println(res) ``` 创建一个文档 ``` data := map[string]interface{}{ "username":"张三", "title":"测试标题", "mobile":"13545026300", "age":24, } err := es.New().Index(index).Insert(data) if err != nil { fmt.Println(err) } fmt.Println("创建成功") ``` 批量创建文档 ``` list := make([]map[string]interface{},0) //list填充数据 if err := es.New().Index(index).InsertALL(list); err != nil { fmt.Println(err) } fmt.Println("创建成功") ``` 根据docId修改文档 ``` data := make(map[string]interface{}) data["age"] = 30 data["mobile"] = "13545028470" data["username"] = "寒塘冷月" data["title"] = "测试标题测试标题测试标题测试标题aaa" docId := "MXxAZYoBcCV2sXKT-BB2" err := es.New().Index(index).Update(docId, data) if err != nil { fmt.Println(err) } c.JSON(http.StatusOK, "修改成") ``` 根据docId删除文档 ``` err := es.New().Index(index).DeleteOne("ifWtZIoBlXyWNzXL6ojE") if err != nil { fmt.Println(err) } fmt.Println("删除成功") ``` 查询索引文档 ``` query := map[string]interface{}{ "query": map[string]interface{}{ "match": map[string]interface{}{ "username": "寒塘冷月", }, }, } res, err := es.New().Index(index).Query(query).Limit(20).Page(1).Order("age:desc").Find() if err != nil { fmt.Println(err) } ``` 指定返回的字段 ``` query := map[string]interface{}{ "query": map[string]interface{}{ "match": map[string]interface{}{ "username": "寒塘冷月", }, }, } res, err := es.New().Index(index).Query(query).Limit(20).Field("username,sex").Find() if err != nil { fmt.Println(err) } ``` 设置查询关键词高亮 ``` query := map[string]interface{}{ "query": map[string]interface{}{ "match": map[string]interface{}{ "username": "寒塘冷月", }, }, } res, err := es.New().Index(index).Query(query).HighLight("username").Find() if err != nil { fmt.Println(err) } ``` 获取一个字段的求和 ``` query := map[string]interface{}{ "query": map[string]interface{}{ "match": map[string]interface{}{ "username": "寒塘冷月", }, }, } res, err := es.New().Index(index).Query(query).Sum("age") if err != nil { fmt.Println(err) } ``` 查询分组 ``` query := map[string]interface{}{ "query": map[string]interface{}{ "match": map[string]interface{}{ "username": "寒塘冷月", }, }, } res, err := es.New().Index(index).Query(query).Group("username") if err != nil { fmt.Println(err) } ``` 查询索引文档数量 ``` res, err := es.New().Index(index).Count() if err != nil { fmt.Println(err) } ``` 服务端运行 ------------------------ ``` # 安装依赖包 go mod tidy # 启动项目 go run main.go ``` ## 联系方式 联系qq:872977817