elasticsearch怎么使用
发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,这篇文章主要讲解了"elasticsearch怎么使用",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"elasticsearch怎么使用"吧!es.go
千家信息网最后更新 2025年02月02日elasticsearch怎么使用
这篇文章主要讲解了"elasticsearch怎么使用",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"elasticsearch怎么使用"吧!
es.go
package mainimport ( "context" "github.com/olivere/elastic" "time")var ( esUrl = "http://s10:19200" ctx = context.Background() client *elastic.Client)func init() { var err error client, err = elastic.NewClient( elastic.SetSniff(false), elastic.SetURL(esUrl), elastic.SetHealthcheckInterval(10*time.Second), elastic.SetMaxRetries(5), ) if err != nil { panic(err.Error()) }}
mysql.go
package mainimport ( _ "github.com/go-sql-driver/mysql" "github.com/go-xorm/xorm")var ( db *xorm.EngineGroup)func init() { conns := []string{"test:test@tcp(127.0.0.1:3306)/test"} var err error db, err = xorm.NewEngineGroup("mysql", conns) if err != nil { panic(err.Error()) } db.ShowSQL(true) db.SetMaxIdleConns(5) db.SetMaxOpenConns(10)}
model.go
package mainimport ( "encoding/json" "time")type StudentAnswer struct { Id int64 `json:"id"` Qid int64 `json:"qid"` QuesType int `json:"ques_type"` ClassType int `json:"class_type"` LessonId int64 `json:"lesson_id"` ScheduleId int64 `json:"schedule_id"` IsFirstSubmit int `json:"is_first_submit"` IsRight int `json:"is_right"` StuAnswer string `json:"stu_answer"` Scores string `json:"scores"` StudentId int64 `json:"student_id"` CreatedAt time.Time `json:"created_at"` UpdatedAt time.Time `json:"updated_at"`}func (*StudentAnswer) TableName() string { return "student_answer"}func (sa *StudentAnswer) String() string { buf, _ := json.Marshal(sa) return string(buf)}
main.go
package mainimport ( "fmt" "github.com/olivere/elastic" "googo.io/goo/log" "sync")var ( MaxId = int64(0) pageSize = 1000 index = "stu-answer" wg sync.WaitGroup ch = make(chan int64, 1000) data = make(chan []StudentAnswer))func init() { // client.DeleteIndex(index).Do(ctx) // client.CreateIndex(index).Do(ctx)}func main() { wg.Add(1) go func() { defer wg.Done() for { rows := getRows() fmt.Println(len(rows)) if rows == nil || len(rows) == 0 { break } MaxId = rows[len(rows)-1].Id data <- rows } }() wg.Add(1) go func() { defer wg.Done() for { select { case rows := <-data: el := client.Bulk().Index(index) for _, row := range rows { el.Add(elastic.NewBulkIndexRequest().Id(fmt.Sprintf("%d", row.Id)).Doc(row)) } if _, err := el.Do(ctx); err != nil { gooLog.Error(err.Error()) } } } }() wg.Wait()}func getRows() []StudentAnswer { rows := []StudentAnswer{} err := db.Where("id > ?", MaxId).Limit(pageSize).Find(&rows) if err != nil { gooLog.Error(err.Error()) return nil } return rows}
test/main.go
package mainimport ( "encoding/json" "fmt" "github.com/olivere/elastic")// SELECT COUNT(*) AS cnt FROM (SELECT id FROM `student_answer`// WHERE lesson_id IN (633,63,635,636,665,668) AND is_first_submit = 1 AND class_type = 2// GROUP BY `student_id`) AS avar ( index = "jy_edu_student_answer")func main() { q := elastic.NewBoolQuery().Must( elastic.NewTermsQuery("lesson_id", 633, 634, 635, 636, 665, 668), elastic.NewMatchQuery("is_first_submit", "1"), elastic.NewMatchQuery("class_type", "2"), ) agg := elastic.NewTermsAggregation().Field("student_id") cnt, err := client.Count().Index(index).Do(ctx) fmt.Println(cnt, err) cnt, err = client.Count().Index(index).Query(q).Do(ctx) fmt.Println(cnt, err) rst, _ := client.Search().Index(index).Aggregation("agg_student_id", agg).Query(q).Size(0).Do(ctx) buf, _ := json.Marshal(rst) fmt.Println(string(buf))}
感谢各位的阅读,以上就是"elasticsearch怎么使用"的内容了,经过本文的学习后,相信大家对elasticsearch怎么使用这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
学习
内容
就是
思路
情况
文章
更多
知识
知识点
篇文章
跟着
问题
实践
推送
研究
验证
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
吉林软件开发系统价目表
西安pb软件开发工程师
免费mysql服务器
根据国家网络安全法的规定
虚拟机安装网络安全基础
客户数据库的建立与应用
深圳网络安全评估厂子
安卓软件开发工资多少
安渡服务器
数据库云备份
服务器系统能连打印机吗
软件开发学徒工资多少
双色球历史中奖数据库
南昌数据库培训哪家好
关闭服务器代理
得格网络技术广东有限公司
服务器上如何加主机
分布式数据库列表
华为 sip 服务器
安装kms服务器
戴尔服务器指示灯4白2黄
百度为什么会出现未连接服务器
各级党委对网络安全工作
社旗软件开发哪家好
工业网络技术大类
常州现代软件开发维修电话
碧橙网络技术有限公司主页
吴江区有名的网络技术专业服务
网络技术基础与爬虫
dns是网络安全方向吗