当前位置: 首页 > news >正文

网站做成app在internet上建设网站

网站做成app,在internet上建设网站,微信公众号内容制作流程,如何建立自己的网站?前面两篇文章介绍了elasticsearch以及Kibana的安装#xff0c;检索引擎以及可视化工具都已经安装完成#xff0c;接下来介绍下如何使用golang的sdk实现简单的分页查询。 1、下载Elastic官方golang sdk 在讲解elasticsearch检索之前#xff0c;需要先把golang的环境安装好检索引擎以及可视化工具都已经安装完成接下来介绍下如何使用golang的sdk实现简单的分页查询。 1、下载Elastic官方golang sdk 在讲解elasticsearch检索之前需要先把golang的环境安装好go的安装可以参考官方文档mac、linux下的安装都非常简单参考以下文档 go下载地址https://go.dev/dl/ 安装说明https://go.dev/doc/install 安装完成后把goproxy改成国内代理执行以下命令 go env -w GOPROXYhttps://goproxy.cn,direct 下载elasticsearch官方golang包 go get github.com/elastic/go-elasticsearch/v8 或者直接在代码里引入该包之后通过命令 go mod tidy 来下载各种依赖包。 2、测试数据说明 es中一共写入了11000条数据doc_id字段标识了数据的索引有助于说明本文分享的使用fromsize参数的检索。 3、使用fromsize实现分页检索 首先定义检索结果的基础数据结构 // 最外层数据结构 type Documents struct {Shards Shards json:_shardsHits HitOutLayer json:hitsTimedOut bool json:timed_outTook int json:took } type Shards struct {Failed int json:failedSkipped int json:skippedSuccessful int json:successfulTotal int json:total } type HitOutLayer struct {Hits []Hits json:hitsMaxScore float64 json:max_scoreTotal Total json:total } type Hits struct {ID string json:_idIndex string json:_indexScore float64 json:_scoreSource map[string]any json:_sourceType string json:_type } type Total struct {Relation string json:relationValue int json:value } 连接eses8默认是通过https进行连接因此在连接时需要设置证书证书的位置在es路径下的config文件夹中 连接es的代码如下 cert, _ : os.ReadFile(/Users/liupeng/Documents/study/elasticsearch-8.17.0/config/certs/http_ca.crt) client, err : elasticsearch.NewClient(elasticsearch.Config{Username: elastic,Password: XBSadqa799j_AozAh,Addresses: []string{https://127.0.0.1:9200},CACert: cert, }) 构建检索dsl跳过前面1000个文档检索10条文档 dslQuery : esbuilder.NewDsl() boolQuery : esbuilder.NewBoolQuery() boolQuery.Filter(esbuilder.NewRangeQuery(doc_id).Gte(1)) dslQuery.SetQuery(boolQuery) dslQuery.SetFrom(1000) dslQuery.SetSize(3) dslQuery.SetOrder(esbuilder.NewSortQuery(doc_id, asc)) dsl : dslQuery.BuildJson() 构建dsl我使用了自研的构建dsl的库 github.com/liupengh3c/esbuilder 主打一个方便就不用开发者自行去拼凑dsl了开发成本降低了许多。 执行检索过程并把检索到的内容进行打印 search : esapi.SearchRequest{Index: []string{new_tag_202411},Body: strings.NewReader(dsl), } resp, err : search.Do(context.Background(), client) if err ! nil {fmt.Println(search err:, err.Error())return } json.NewDecoder(resp.Body).Decode(docs) strDoc, _ : json.MarshalToString(docs) fmt.Println(strDoc) 理论上应该打印doc_id从1001开始到1003的3条数据打印出来的数据如下 {_shards: {failed: 0,skipped: 0,successful: 1,total: 1},hits: {hits: [{_id: JME17xx_adc_behavior_NOJUNCTION_STRAIGHT_1_1732982184160_1732982184860_1733030180041,_index: new_tag_202411,_score: 0,_source: {adc_behavior: NOJUNCTION_STRAIGHT,car_id: JME17xx,create_time: 2024-12-23 21:34:51,doc_id: 1001,end_time: 1732982184860,rule_id: 1,rule_priority: 1,rule_version: 2.1.0.0,start_time: 1732982184160,tag_additional_info: {adc_driving_mode: COMPLETE_MANUAL,average_speed: 0.003893,driving_mode: 0,end_point: {x: 222294.311402,y: 3373118.699096,z: 14.721843},start_point: {x: 222294.312234,y: 3373118.698359,z: 14.721373}},tag_name: adc_behavior,user: liupeng},_type: },{_id: JME18xx_adc_behavior_NOJUNCTION_STRAIGHT_1_1732982184140_1732982218540_1733030184257,_index: new_tag_202411,_score: 0,_source: {adc_behavior: NOJUNCTION_STRAIGHT,car_id: JME18xx,create_time: 2024-12-23 21:34:51,doc_id: 1002,end_time: 1732982218540,rule_id: 1,rule_priority: 1,rule_version: 2.1.0.0,start_time: 1732982184140,tag_additional_info: {adc_driving_mode: COMPLETE_AUTO_DRIVE,average_speed: 3.86589,driving_mode: 1,end_point: {x: 219886.247841,y: 3374513.249021,z: 8.882025},start_point: {x: 219576.290596,y: 3374298.199175,z: 9.130117}},tag_name: adc_behavior,user: liupeng},_type: },{_id: ARCFxx_adc_behavior_U_TURN_1_1732982184047_1732982227367_1733030187627,_index: new_tag_202411,_score: 0,_source: {adc_behavior: U_TURN,car_id: ARCFxx,create_time: 2024-12-23 21:34:52,doc_id: 1003,end_time: 1732982227367,rule_id: 1,rule_priority: 1,rule_version: 2.1.0.0,start_time: 1732982184047,tag_additional_info: {adc_driving_mode: COMPLETE_AUTO_DRIVE,average_speed: 10.146669,driving_mode: 1,end_point: {x: 228474.086367,y: 3392800.40123,z: 8.736978},start_point: {x: 228502.4916,y: 3392823.01595,z: 8.714573}},tag_name: adc_behavior,user: liupeng},_type: }],max_score: 0,total: {relation: gte,value: 10000}},timed_out: false,took: 2 } 结果的返回是符合预期的perfect。 4、一个很重要的知识点 formsize的这种分页方式是有前提的就是只能检索10000条以内的数据如果超过10000那就不灵了超过10000后一条数据都不会返回比如我们将设置from、size的代码改成如下 dslQuery : esbuilder.NewDsl() boolQuery : esbuilder.NewBoolQuery() boolQuery.Filter(esbuilder.NewRangeQuery(doc_id).Gte(1)) dslQuery.SetQuery(boolQuery) dslQuery.SetFrom(9998) dslQuery.SetSize(3) dslQuery.SetOrder(esbuilder.NewSortQuery(doc_id, asc)) dsl : dslQuery.BuildJson() 跳过前面9998条检索3条数据出来很明显这样的检索条件是超过了10000条的执行代码后检索没有结果 所以这种检索分页方式存在局限性在10000条数据之内可以这么使用但是一旦超过10000就会有问题当然我们也不用担心elastic是有解决方案的我会再单独写文章来介绍。 5、one more thing 我在自己的macbook上【在家里】安装了es注意关键信息是【在家里】安装的上班的时候把自己电脑带到了公司上班摸鱼的时候我打开了自己电脑连接wifi启动es、kibana准备把公司mac上es的数据copy到自己mac上问题来了自己mac上kibnan启动不了了启动不了了......我很纳闷啥情况为啥启动不了了难道是我替换了es文件夹下data的缘故吗重新恢复为自己的data问题依旧。 下班心想还得把公司电脑上es的数据拷贝一份到自己mac上以用来测试就把公司mac带回家连接家里的wifi我满怀期待的打开电脑准备倒数据结果公司电脑的kibana也启动不了启动不了了我的天哪这是见鬼了吗啥情况呢自己电脑上的kibana能启动了这是在外面认生吗得回到自己家才能启动这是问题1这个时候我心想公司电脑上kibana启动不了就算了我直接用自己mac跑代码读取公司mac上es的数据然后写入到本地的es上问题又来了竟然连接不上提示证书授权的ip没有当前ip这完蛋了这是问题2。 于是我就停下来大概想了一下问题的始末大概明白了es8的安全证书对网络加了校验既然我通过自己mac连接不上公司mac现在所处的网络是家里那就说明自己mac的证书是有效的于是就调换一下从公司mac上跑代码读取本机写入到自己mac上结果还真成了。 但是kibana更换网络无法启动的问题还未解决这个问题不解决也就是说只要不是在家里kibana就打不开es不能做的这么傻吧于是今天到公司后请教了elastic中国社区首席布道师刘晓国老师刘老师非常热情的直接电话过来解释了kibana无法打开的原因以及解决办法在这里对刘老师的帮助表达诚挚感谢非常感谢刘老师。推荐大家看看刘老师的博客Elastic开发者上手指南-CSDN博客 接下来我们说kibana无法打开的原因还是证书问题kibana在启动时对本机的ip做了校验更换网络后ip发生变更因此kibana无法启动kibana的配置文件中有这么一行代码 我们只要这行代码更改为以下即可 elasticsearch.hosts: [https://localhost:9200] es8的证书除了对本机的实际ip做了校验也对localhost做了验证因此只要改成localhost问题就会解决即使更换网络localhost是不会改变的。 另外再更换网络的情况下如果要通过未更换网络的机器连接更换网络的机器只有一个办法那就是在当前网络下更新证书除此别无他法。 6、所有代码 package mainimport (contextfmtosstringstimegithub.com/elastic/go-elasticsearch/v7/esapigithub.com/elastic/go-elasticsearch/v8jsoniter github.com/json-iterator/gogithub.com/liupengh3c/esbuilder )// 最外层数据结构 type Documents struct {Shards Shards json:_shardsHits HitOutLayer json:hitsTimedOut bool json:timed_outTook int json:took } type Shards struct {Failed int json:failedSkipped int json:skippedSuccessful int json:successfulTotal int json:total } type HitOutLayer struct {Hits []Hits json:hitsMaxScore float64 json:max_scoreTotal Total json:total } type Hits struct {ID string json:_idIndex string json:_indexScore float64 json:_scoreSource map[string]any json:_sourceType string json:_type } type Total struct {Relation string json:relationValue int json:value }func main() {SearchFromSize() }func SearchFromSize() {st : time.Now()defer func() {fmt.Println(cost:, time.Since(st).Milliseconds(), ms)}()var json jsoniter.ConfigCompatibleWithStandardLibrarydocs : Documents{}cert, _ : os.ReadFile(/Users/liupeng/Documents/study/elasticsearch-8.17.0/config/certs/http_ca.crt)client, err : elasticsearch.NewClient(elasticsearch.Config{Username: elastic,Password: xpE4DQGWE9bCkoj7WXYE,Addresses: []string{https://127.0.0.1:9200},CACert: cert,})if err ! nil {fmt.Println(create client err:, err.Error())return}dslQuery : esbuilder.NewDsl()boolQuery : esbuilder.NewBoolQuery()boolQuery.Filter(esbuilder.NewRangeQuery(doc_id).Gte(1))dslQuery.SetQuery(boolQuery)dslQuery.SetFrom(9998)dslQuery.SetSize(3)dslQuery.SetOrder(esbuilder.NewSortQuery(doc_id, asc))dsl : dslQuery.BuildJson()search : esapi.SearchRequest{Index: []string{new_tag_202411},Body: strings.NewReader(dsl),}resp, err : search.Do(context.Background(), client)if err ! nil {fmt.Println(search err:, err.Error())return}json.NewDecoder(resp.Body).Decode(docs)strDoc, _ : json.MarshalToString(docs)fmt.Println(strDoc) } 最后祝各位同学圣诞节快乐~~~~~~~~~~~~~
http://www.hkea.cn/news/14372275/

相关文章:

  • 企业网站在策划阶段最重要的工作是什么营销型网站建设细节
  • 织梦网站建设培训wordpress防止挂马
  • 视频网站建设公司排名江苏电商网站开发
  • 学校文化建设网站网站是否需要备案
  • 宁波cms建站湖南省工程建设信息官方网站
  • 网站建设投票系统设计2023免费网站推广大全
  • 网站商城具有哪些功能模块如何做网站推广方案
  • 手机网站建设教程代网站建设
  • 网站开发倒计时门户网站建设和管理情况自查
  • 曲阳网站建设推广最新站群系统
  • wordpress网站二次开发wordpress需要的php版本
  • 整形网站模板天河区门户网站官网
  • 怎么提高网站加载速度慢常规网站服务器
  • 珠海营销网站建设百度实时热搜榜
  • 广州注册公司核名在哪个网站农技推广
  • 济南建设网站网站开发技术路线图
  • swipe类网站asp网站开发实训总结
  • 快速优化seo软件推广方法兰州网站优化服务
  • 想做个人域名网站怎么做贵州企业网站开发公司
  • 郑州网站设计汉狮陕西网站建设宣传方案
  • 视频网站后台管理系统短网址赚钱平台
  • 雷山网站快速排名wordpress 3.6.1
  • 聊城网站建设售后服务专业建设包括哪些方面
  • 信息公开 强化网站建设wordpress怎样修改字体大小
  • 深圳做网站哪家最好门户网站上的广告怎么做
  • 网站开发 注意事项衡水百度seo
  • 官方做任务网站集团建设网站
  • 网站建设基本概述南宁网站开发gxjzdrj
  • 行业信息网站建设方案百度广告联盟官网入口
  • 做车品的网站房屋装修效果图app有哪些