elasticsearch文档操作的方法有哪些
发表于:2024-11-29 作者:千家信息网编辑
千家信息网最后更新 2024年11月29日,这篇文章主要介绍"elasticsearch文档操作的方法有哪些",在日常操作中,相信很多人在elasticsearch文档操作的方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法
千家信息网最后更新 2024年11月29日elasticsearch文档操作的方法有哪些查找
这篇文章主要介绍"elasticsearch文档操作的方法有哪些",在日常操作中,相信很多人在elasticsearch文档操作的方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"elasticsearch文档操作的方法有哪些"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
文档
查找name=hnatao
的数据
rst, _ := client.Search().Index("user").Query(elastic.NewMatchQuery("name", "hnatao")).Do(ctx)buf, _ := json.Marshal(rst.Hits.Hits)fmt.Println(string(buf))
返回
[ { "_score": 1.3862942, "_index": "user", "_type": "_doc", "_id": "1", "_seq_no": null, "_primary_term": null, "_source": { "name": "hnatao", "age": 21, "score": 80 } }]
查找 20 岁的 hnatao 的数据
q := elastic.NewBoolQuery().Must( elastic.NewMatchQuery("name", "hnatao"), elastic.NewMatchQuery("age", "20"),)rst, _ := client.Search().Index("user").Query(q).Do(ctx)buf, _ := json.Marshal(rst.Hits.Hits)fmt.Println(string(buf))
返回
[]
查找 20 岁,21 岁的所有用户信息
q := elastic.NewRangeQuery("age").Gte("20").Lte("21")rst, _ := client.Search().Index("user").Query(q).Do(ctx)buf, _ := json.Marshal(rst.Hits.Hits)fmt.Println(string(buf))
返回
[ { "_score": 1, "_index": "user", "_type": "_doc", "_id": "1", "_seq_no": null, "_primary_term": null, "_source": { "name": "hnatao", "age": 21, "score": 80 } }, { "_score": 1, "_index": "user", "_type": "_doc", "_id": "5", "_seq_no": null, "_primary_term": null, "_source": { "name": "guofucheng", "age": 20, "score": 0 } }]
查找大于 21 岁的所有用户信息
q := elastic.NewRangeQuery("age").Gte("21")rst, _ := client.Search().Index("user").Query(q).Do(ctx)buf, _ := json.Marshal(rst.Hits.Hits)fmt.Println(string(buf))
返回
[ { "_score": 1, "_index": "user", "_type": "_doc", "_id": "1", "_seq_no": null, "_primary_term": null, "_source": { "name": "hnatao", "age": 21, "score": 80 } }, { "_score": 1, "_index": "user", "_type": "_doc", "_id": "2", "_seq_no": null, "_primary_term": null, "_source": { "name": "lqt", "age": 22, "score": 90 } }, { "_score": 1, "_index": "user", "_type": "_doc", "_id": "3", "_seq_no": null, "_primary_term": null, "_source": { "name": "liudehua", "age": 23, "score": 85 } }, { "_score": 1, "_index": "user", "_type": "_doc", "_id": "4", "_seq_no": null, "_primary_term": null, "_source": { "name": "zhangxueyou", "age": 24, "score": 86 } }]
查找有得分记录的用户
q := elastic.NewExistsQuery("score")rst, _ := client.Search().Index("user").Query(q).Do(ctx)buf, _ := json.Marshal(rst.Hits.Hits)fmt.Println(string(buf))
返回
[ { "_score": 1, "_index": "user", "_type": "_doc", "_id": "1", "_seq_no": null, "_primary_term": null, "_source": { "name": "hnatao", "age": 21, "score": 80 } }, { "_score": 1, "_index": "user", "_type": "_doc", "_id": "2", "_seq_no": null, "_primary_term": null, "_source": { "name": "lqt", "age": 22, "score": 90 } }, { "_score": 1, "_index": "user", "_type": "_doc", "_id": "3", "_seq_no": null, "_primary_term": null, "_source": { "name": "liudehua", "age": 23, "score": 85 } }, { "_score": 1, "_index": "user", "_type": "_doc", "_id": "4", "_seq_no": null, "_primary_term": null, "_source": { "name": "zhangxueyou", "age": 24, "score": 86 } }, { "_score": 1, "_index": "user", "_type": "_doc", "_id": "5", "_seq_no": null, "_primary_term": null, "_source": { "name": "guofucheng", "age": 20, "score": 0 } }]
查找没有得分记录的用户
q := elastic.NewBoolQuery().MustNot(elastic.NewExistsQuery("score"))rst, _ := client.Search().Index("user").Query(q).Do(ctx)buf, _ := json.Marshal(rst.Hits.Hits)fmt.Println(string(buf))
返回
[]
20 岁用户总人数
q := elastic.NewTermQuery("age", "20")rst, _ := client.Count().Index("user").Query(q).Do(ctx)buf, _ := json.Marshal(rst)fmt.Println(string(buf))
返回
数字:1
用户的平均人数
q := elastic.NewAvgAggregation().Field("age")rst, _ := client.Search().Index("user").Aggregation("avg_age", q).Size(0).Do(ctx)fmt.Println(string(rst.Aggregations["avg_age"]))
返回
{ "value": 22.0 }
查找年龄最小的用户
rst, _ := client.Search().Index("user").Sort("age", true).Size(1).Do(ctx)buf, _ := json.Marshal(rst.Hits.Hits)fmt.Println(string(buf))
返回
[ { "_index": "user", "_type": "_doc", "_id": "5", "_seq_no": null, "_primary_term": null, "sort": [20], "_source": { "name": "guofucheng", "age": 20, "score": 0 } }]
统计年龄的各个维度
agg := elastic.NewStatsAggregation().Field("age")rst, _ := client.Search().Index("user").Aggregation("stats_age", agg).Do(ctx)buf, _ := rst.Aggregations["stats_age"].MarshalJSON()fmt.Println(string(buf))
返回
{ "count": 5, "min": 20.0, "max": 24.0, "avg": 22.0, "sum": 110.0}
统计年龄占比百分位
agg := elastic.NewPercentilesAggregation().Field("age")rst, _ := client.Search().Index("user").Aggregation("stats_age", agg).Do(ctx)buf, _ := rst.Aggregations["stats_age"].MarshalJSON()fmt.Println(string(buf))
返回
{ "values": { "1.0": 20.0, "5.0": 20.0, "25.0": 20.75, "50.0": 22.0, "75.0": 23.25, "95.0": 24.0, "99.0": 24.0 }}
查询每个年龄的平均分数,并按年龄从小到大排序
agg := elastic.NewTermsAggregation().Field("age"). SubAggregation("avg_score", elastic.NewAvgAggregation().Field("score")).OrderByKeyAsc()rst, _ := client.Search().Index("user").Aggregation("stats_age", agg).Do(ctx)buf, _ := rst.Aggregations["stats_age"].MarshalJSON()fmt.Println(string(buf))
返回
{ "doc_count_error_upper_bound": 0, "sum_other_doc_count": 0, "buckets": [ { "key": 20, "doc_count": 1, "avg_score": { "value": 0.0 } }, { "key": 21, "doc_count": 2, "avg_score": { "value": 85.0 } }, { "key": 22, "doc_count": 2, "avg_score": { "value": 85.5 } } ]}
查询每个年龄的平均分数,并按平均分数从大到小排序
agg := elastic.NewTermsAggregation().Field("age"). SubAggregation("avg_score", elastic.NewAvgAggregation().Field("score")).OrderByAggregation("avg_score", false)rst, _ := client.Search().Index("user").Aggregation("stats_age", agg).Do(ctx)buf, _ := rst.Aggregations["stats_age"].MarshalJSON()fmt.Println(string(buf))
返回
{ "doc_count_error_upper_bound": 0, "sum_other_doc_count": 0, "buckets": [ { "key": 22, "doc_count": 2, "avg_score": { "value": 85.5 } }, { "key": 21, "doc_count": 2, "avg_score": { "value": 85.0 } }, { "key": 20, "doc_count": 1, "avg_score": { "value": 0.0 } } ]}
到此,关于"elasticsearch文档操作的方法有哪些"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
用户
年龄
文档
方法
学习
分数
人数
信息
得分
数据
更多
帮助
排序
查询
统计
实用
最小
从小到大
接下来
从小
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
关于网络安全的儿歌
设备管理服务器地址
java软件开发人多吗
张家港营销网络技术哪家好
mysql数据库请假信息查询
vs022编写静态数据库
宇宙奶茶馆用的什么服务器
软件开发培训招生标语
好当家服务器
广东网络软件开发条件
数据库工程师项目描述
什么云服务器好用又安全
查询数据库原理课成绩
卫生健康涉及的网络安全
网络安全多形式宣传
图片服务器安全吗
数据库登陆时提示18456
唯一 服务器
dcs主服务器管理措施
数据库暴库
数据库信息异常
光明区数据网络技术开发动态
常用的网络安全防护设备
互联网科技技术维护校园
平南县委网络安全办公室
修改数据库中字段数据类型
北京诺基亚网络技术
我的世界好玩的服务器搭桥
三十多了可以学软件开发吗
linode服务器管理