【ES】Go操作elasticsearch

贴一个作者代码实现的github仓库:go操作es的全部代码

1.es的连接

导入依赖:go get -u "github.com/olivere/elastic/v7"
var Client *elastic.Client

func EsConnect() {
   
   
	client, err := elastic.NewClient(
		elastic.SetURL("http://127.0.0.1:9200"),
		elastic.SetSniff(false),
		elastic.SetBasicAuth("elastic", "123456"))

	if err != nil {
   
   
		fmt.Println("连接失败:", err.Error())
		return
	}
	Client = client
}

2.es的认证

  • 认证情况:分析
    • 无需认证
      1.云服务器使用docker 搭建es,但是9200,9300端口不开放
      2.本身跑在127.0.0.1上
    • 需要认证:es需要对外提供服务的,比如说本机连接服务器的es
  • 给docker的es容器设置密码
    • 进入es容器,修改配置文件:config/elasticsearch.yml,添加下列信息
	http.cors.enabled: true
	http.cors.allow-origin: "*"
	http.cors.allow-headers: Authorization
	xpack.security.enabled: true
	xpack.security.transport.ssl.enabled: true
  • 重启es容器生效
    docker restart es
  • 进入容器,输入./bin/elasticsearch-setup-passwords interactive,根据提示设置至少六位长度的密码。设置6种密码建议设置一样。
    在这里插入图片描述 - 再次重启生效,用户名:elastic
    • 网页访问
      在这里插入图片描述

    • curl访问:curl -u elastic:123456 http://127.0.0.1:9200

    • curl命令

3.索引操作

  • 创建索引

    1. 用户实例

      type User struct {
             
             
          ID        uint      jsom:"id"
          Name      string    jsom:"name"
          Nickname  string    jsom:"nick_name"
          CreatedAt time.Time jsom:"created_at"
      }
      
      func (u User) Mapping() string {
             
             
          return {
             
                  
          "mappings":{
             
               
           "properties":{
             
                
              "nick_name":{
             
                     
              "type":"text" //分词              
             },                
             "name":{
             
                                    
          "type":"keyword" //完全匹配        
               },               
            "id":{
             
                                    
        "type":"integer"            
             },               
            "created_at":{
             
                     
               "type":"date",         
                "null_value":"null",       
                "format":"[yyyy-MM-dd HH:mm:ss]"  
              }      
           
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值