
es包
gopkg.in/olivere/elastic.v3
Golang *** 作es 过程中,定义struct 结果写入es的内容总是为空,后来发现,定义struct 首字母小写了,Golang中首字母小写表示私有,所以无法成功写入,改成共有的即可。
刚学习,还不熟悉,做个记录
//qnzsEsprojectmain.go
packagemain
import(
"fmt"
"log"
"os"
"database/sql"
"time"
_"github.com/go-sql-driver/MysqL"
"gopkg.in/olivere/elastic.v3"
)
varclIEnt*elastic.ClIEnt
vardb*sql.DB
typequesstruct{ qIDstring
Titlestring
addedstring
orgIDstring
}
typeQues2struct{ Contentstring
}
funcinit(){ varerrerror
clIEnt,err=elastic.NewClIEnt(
elastic.SetURL("http://127.0.0.1:9200"), elastic.SetSniff(false),
elastic.SetHealthcheckInterval(10*time.Second),
elastic.SetMaxRetrIEs(5),
elastic.SetErrorLog(log.New(os.Stderr,"ELASTIC",log.LstdFlags)),
elastic.SetInfolog(log.New(os.Stdout,"",log.LstdFlags)))
iferr!=nil{ fmt.Println(err)
}
//初始化MysqL
db,_=sql.Open("MysqL","root:123456@tcp(127.0.0.1:3306)/youth_qnzs") db.SetMaxOpenConns(2000)
db.SetMaxIDleConns(1000)
db.Ping()
}
funcmain(){ quesRow:=getFromMysqL()
//fmt.Println(ques["orgstrID"])
//quesContent:=ques{qID:quesRow["q_ID"],Title:quesRow["q_Title"],added:quesRow["q_added"],orgID:quesRow["orgID"]} quesContent:=Ques2{Content:quesRow["q_Title"]} fmt.Println(quesContent)
_,err:=clIEnt.Index().
Index("ikindex"). Type("fulltext"). ID(quesRow["q_ID"]).
BodyJson(quesContent).
Refresh(true).
Do()
iferr!=nil{ //Handleerror
panic(err)
}
}
funcgetFromMysqL()map[string]string{ record:=make(map[string]string)
rows,err:=db.query("SELECT*FROMq_questionslimit998,1") deferrows.Close()
//checkErr(err)
iferr!=nil{ fmt.Println(err)
returnrecord
}
columns,_:=rows.Columns()
scanArgs:=make([]interface{},len(columns)) values:=make([]interface{},len(columns)) forj:=rangevalues{ scanArgs[j]=&values[j]
}
forrows.Next(){ //将行数据保存到record字典
err=rows.Scan(scanArgs...)
fori,col:=rangevalues{ ifcol!=nil{ record[columns[i]]=string(col.([]byte))
}
}
}
returnrecord
}
/**
*从es搜索
*/
funcesSearch(){ termquery:=elastic.NewTermquery("content","中国") searchResult,err:=clIEnt.Search().
Index("ikindex").Type("fulltext").//searchinindex"twitter" query(termquery).//specifythequery
//Sort("user",true).//sortby"user"fIEld,ascending From(0).Size(10).//takedocuments0-9
Pretty(true).//prettyprintrequestandresponseJsON
Do()//execute
iferr!=nil{ //Handleerror
panic(err)
}
//searchResultisoftypeSearchResultandreturnshits,suggestions,
//andallkindsofotherinformationfromElasticsearch.
fmt.Printf("querytook%dmilliseconds\n",searchResult.TookInMillis) fmt.Println(searchResult.Hits.TotalHits)
fmt.Println("HelloWorld!") }总结
以上是内存溢出为你收集整理的Golang elasticsearch 对接问题全部内容,希望文章能够帮你解决Golang elasticsearch 对接问题所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)