千家信息网

elasticsearch3中golang怎么用

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章主要介绍elasticsearch3中golang怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!package mainimport ( "cont
千家信息网最后更新 2026年11月01日elasticsearch3中golang怎么用

这篇文章主要介绍elasticsearch3中golang怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

package mainimport (        "context"        "fmt"        "github.com/olivere/elastic"        "reflect"        "time")var (        esUrl = "http://s100:9200"        ctx   = context.Background())type User struct {        Name string `json:"name"`        Age  int    `json:"age"`}func main() {        // 链接服务器        client, err := elastic.NewClient(                elastic.SetSniff(false),                elastic.SetURL(esUrl),                elastic.SetHealthcheckInterval(10*time.Second),                elastic.SetMaxRetries(5),        )        if err != nil {                panic(err.Error())        }        // 获取基本信息        info, code, err := client.Ping(esUrl).Do(ctx)        if err != nil {                panic(err.Error())        }        fmt.Println(">>es-info>>", info.Version.Number, code)        client.Delete().Index("user")        // 是否存在索引        exists, err := client.IndexExists("user").Do(ctx)        if err != nil {                panic(err.Error())        }        fmt.Println(">>index-exists>>", exists)        // 创建索引        if !exists {                rst, err := client.CreateIndex("user").Do(ctx)                if err != nil {                        panic(err.Error())                }                fmt.Println(">>index-index>>", rst.Index)        }        // 批量添加        for i := 1; i <= 3; i++ {                id := fmt.Sprintf("%d", i)                rsp, err := client.Index().                        Index("user").                        Id(id).                        BodyJson(&User{Name: fmt.Sprintf("name%d", i), Age: i}).                        Do(ctx)                if err != nil {                        panic(err.Error())                }                fmt.Println(">>doc-create>>", "id:", rsp.Id, "index:", rsp.Index, "type:", rsp.Type, "seqno:",                        rsp.SeqNo, "result:", rsp.Result, "status:", rsp.Status)        }        // 修改        rsp, err := client.Update().Index("user").Id("1").Doc(&User{Name: "name100", Age: 100}).Do(ctx)        if err != nil {                panic(err.Error())        }        fmt.Println(">>doc-update>>", rsp)        // 删除        rsp2, err2 := client.Delete().Index("user").Id("2").Do(ctx)        if err2 != nil {                panic(err2.Error())        }        fmt.Println(">>doc-delete>>", rsp2)        // 查询所有        rst, err := client.Search().Index("user").Do(ctx)        if err != nil {                panic(err.Error())        }        for _, u := range rst.Each(reflect.TypeOf(User{})) {                fmt.Println(">>search-all>>", u.(User).Name, u.(User).Age)        }        // 查询条件 - 相等        q := elastic.NewQueryStringQuery("name:name1")        rst, err = client.Search().Index("user").Query(q).Do(ctx)        if err != nil {                panic(err.Error())        }        for _, u := range rst.Each(reflect.TypeOf(User{})) {                fmt.Println(">>search-eq>>", u.(User).Name, u.(User).Age)        }        // // 查询条件 - 大于 - 分页        q2 := elastic.NewBoolQuery()        q2.Must(elastic.NewRangeQuery("age").Gt(3))        rst, err = client.Search().                Index("user").                Size(2).                From(1).                Sort("age", false).                Query(q2).                Do(ctx)        if err != nil {                panic(err.Error())        }        for _, u := range rst.Each(reflect.TypeOf(User{})) {                fmt.Println(">>search-eq2>>", u.(User).Name, u.(User).Age)        }}

以上是"elasticsearch3中golang怎么用"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

u. 查询 内容 条件 篇文章 索引 价值 信息 兴趣 小伙 小伙伴 更多 服务器 知识 行业 资讯 资讯频道 链接 频道 参考 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 湖北九亚互联网络科技有限公司 互联网科技网 中国互联网科技工作委员会毛军 深圳恒合互联网络科技有限公司 科技股互联网 智网互联网科技 壹账通互联网科技 苏州大垚互联网科技 互联网科技有限公司 翻译 上海电发互联网科技有限公司 以后互联网后是啥科技 来此购互联网科技有限公司 晓花互联网科技有限公司网址 35岁以上互联网科技行业 神州科技互联网有限公司 福州德业互联网科技 互联网高科技行业有哪些企业 张家口科技产业互联网平台 好易买互联网科技 如何强化互联网金融科技 保险科技 互联网保险 小马过河互联网科技 互联网女皇 腾讯科技 广州凡科互联网科技 互联网科技教育视频 杭州壁岐互联网科技有限公司 工业互联网科技成果转化 郑州欣桑互联网科技有限公司 安徽九吞吴互联网科技有限公司 现代科技的标志之一的互联网
0