分布式是写出来的(三)

添加元数据服务

元数据服务就是对元数据提供存取功能的服务。元数据就是系统定义的基本信息,比如一张相片的名字,版本,拍摄时间,散列值等。客户端和接口服务之间根据对象的名字来引用一个对象,一个对象可以有多个版本,除了删除标志外,每个版本指向数据服务的一个实际的数据存储

ES的基本使用

ES或者任意的一个分布式数据库都可以作为元数据服务
启动(windows)elasticsearch-7.6.2-windows-x86_64\elasticsearch-7.6.2\bin\elasticsearch.bat
成功http://192.168.7.6:9200/people

链接服务器的golang操作

全文搜索引擎 Elasticsearch 入门教程 作者: 阮一峰
ES官方中文手册
添加索引

package mainimport ("context""fmt""github.com/olivere/elastic"
)func main(){Client, err := elastic.NewClient(elastic.SetURL("http://192.168.7.6:9200"))fmt.Println(Client, err)name := "people2"Client.CreateIndex(name).Do(context.Background())
}

插入和查找

func main(){Client, err := elastic.NewClient(elastic.SetURL("http://192.168.7.6:9200"))fmt.Println(Client, err)name := "people2"data := `{"name": "wali","country": "Chian","age": 30,"date": "1987-03-07"}`_, err = Client.Index().Index(name).Type("man1").Id("1").BodyJson(data).Do(context.Background())get, err := Client.Get().Index(name).Type("man1").Id("1").Do(context.Background())fmt.Println(get, err)

ES的API访问(curl)

常用操作

浏览ES服务器

$ curl -XGET http://localhost:9200/
{"name" : "DESKTOP-PVBHUQ5","cluster_name" : "elasticsearch","cluster_uuid" : "79x294HmR3iDFIQ2M3-_Kg","version" : {"number" : "7.6.2","build_flavor" : "default","build_type" : "zip","build_hash" : "ef48eb35cf30adf4db14086e8aabd07ef6fb113f","build_date" : "2020-03-26T06:34:37.794943Z","build_snapshot" : false,"lucene_version" : "8.4.0","minimum_wire_compatibility_version" : "6.8.0","minimum_index_compatibility_version" : "6.0.0-beta1"},"tagline" : "You Know, for Search"
}

插入索引

$curl -XPUT http://localhost:9200/people{"acknowledged":true,"shards_acknowledged":true,"index":"people"}

往索引库中新增数据

curl  http://localhost:9200/people/ -XPOST -d '{"author" : "a", "name":"a"}' 

查看集群健康状况

curl -XGET http://localhost:9200/_cluster/health?format=yaml
---
cluster_name: "elasticsearch"
status: "yellow"
timed_out: false
number_of_nodes: 1
number_of_data_nodes: 1
active_primary_shards: 3
active_shards: 3
relocating_shards: 0
initializing_shards: 0
unassigned_shards: 3
delayed_unassigned_shards: 0
number_of_pending_tasks: 0
number_of_in_flight_fetch: 0
task_max_waiting_in_queue_millis: 0
active_shards_percent_as_number: 50.0

获取ES所有索引

$~curl -XGET  http://localhost:9200/_cat/indices
yellow open people2   OIyNXAzwSvCXdRTM1OCcug 1 1 1 0 10.2kb 10.2kb
yellow open bigdata_p GlbTA7_xSVK26L_oU_pVKw 1 1 0 0   283b   283b
yellow open people    AwsSuR6VS_uCfkNvqDxc6Q 1 1 0 0   283b   283b

获取索引字段

C:\Users\HodgeKou> curl -XGET http://localhost:9200/people2/_mapping?format=yaml
---
people2:mappings:properties:age:type: "long"country:type: "text"fields:keyword:type: "keyword"ignore_above: 256date:type: "date"name:type: "text"fields:keyword:type: "keyword"ignore_above: 256

新建索引

curl -XPUT localhost:9200/people2

删除索引

curl -XDELETE localhost:9200/people?format=yaml

插入单条数据

curl -XPUT localhost:9200/people/external/1?format=yaml' -d 
quote> { "name":"paxi"}'

查询单条数据

curl -XGET  localhost:9200/people2/_search?pretty

删除单条数据

curl -XDELETE localhost:9200/people2/external/3?format=yaml

ES进行更新PUT请求时,会重发数据

第一次PUT

$ curl -X PUT 'localhost:9200/accounts/person/1' -d '
{"user": "张三","title": "工程师","desc": "数据库管理"
}' 
---------------------------------------------------
{"_index":"accounts","_type":"person","_id":"1","_version":1,"result":"created","_shards":{"total":2,"successful":1,"failed":0},"created":true
}

第二次PUT,更改了数据,banben_version加1

$ curl -X PUT 'localhost:9200/accounts/person/1' -d '
{"user" : "张三","title" : "工程师","desc" : "数据库管理,软件开发"
}' ----------------------------------------------------
{----"_index":"accounts","_type":"person","_id":"1","_version":2,"result":"updated","_shards":{"total":2,"successful":1,"failed":0},"created":false
}
上面代码中,我们将原始数据从"数据库管理"改成"数据库管理,软件开发"。 返回结果里面,有几个字段发生了变化。"_version" : 2,
"result" : "updated",
"created" : false

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/382098.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ZOj 2104——Let the Balloon Rise

老师在上课的时候讲过这道题&#xff0c;不过当时做这道题时还是纠结了许久&#xff0c;那时stl不熟&#xff0c;老是想着用数组&#xff0c;去重很麻烦&#xff0c;学了STL后&#xff0c;用map就简单多了。code &#xff1a;#include <iostream>#include <string>…

分布式是写出来的(四)

数据去重 为了防止同一份数据上传多次&#xff0c;我们需要进行hash值校验。 启动服务时&#xff0c;扫描所有文件&#xff0c;计算sha256值&#xff0c;存储在hash表中。上传文件时&#xff0c;在put请求中添加自己计算的sha256值&#xff0c;hash表内的值进行比较&#xff…

Zoj 2947——Abbreviation

呵呵哒&#xff0c;一开始觉的很难&#xff0c;是因为题长&#xff0c;以后不能被长题再坑了&#xff01;后来耐下性子读&#xff0c;才发现就是让比对缩写是否相同&#xff0c;我用字符数组写的&#xff0c;当时还开了二维数组&#xff0c;现在想来&#xff0c;实在是笨&#…

分布式是写出来的(五)

数据冗余策略 RS(Reed Solomon Coding)纠删码 在存储系统中&#xff0c;需要采用数据冗余技术来保证数据的可靠性&#xff0c;相比使用多副本复制机外&#xff0c;使用纠删码能够以更小的数据冗余度获得更高的数据可靠性。 RS纠删码将原文件分成n个数据块&#xff0c;同时为这…

ZOJ 1151——Word Reversal

有是一个字符串翻转问题&#xff0c;唉&#xff0c;自以为处理的很巧妙&#xff0c;因为如果整句输入可能真的不好处理&#xff0c;呵呵&#xff0c;反正没这样简单&#xff01;code&#xff1a;#include <cstring>#include <cstdio>#include <iostream>#inc…

分布式是写出来的(六)

断点下载 GET 当服务端收到GET请求&#xff0c;服务端不会把整个对象返回给客户端&#xff0c;服务端首先做SEEK&#xff0c;查找客户端提供的Range: bytesfirst的字节数&#xff0c;从0-first的内容服务端直接丢弃&#xff0c;那么服务端从first开始传递数据 POST 如果客户…

【转载】输出二进制 C

想知道怎样输出二进制。我们知道C输出十六进制是cout〈〈hex〈〈 a&#xff1b;而八进制是cout〈〈 ocx〈〈 a;二进制则没有默认的输出格式&#xff0c;需要自己写函数进行转换&#xff0c;于是上网搜索了一下。网上思路真是广泛啊。下面列出一些方法。 #include 〈iostream…

6.824 Raft lesson4 2020(一)

raft实现 距离上一篇文章一个月&#xff0c;因为6.824的课程看不懂&#xff0c;基础知识薄弱。现在了解一点Raft算法&#xff08;自己动手实现一遍&#xff09;还需要其他分布式相关的基础知识&#xff08;实现一个分布式对象存储系统&#xff09;&#xff0c;然后再去继续学习…

#define和const的区别

(1) 编译器处理方式不同 define宏是在预处理阶段展开。 const常量是编译运行阶段使用。 (2) 类型和安全检查不同 define宏没有类型&#xff0c;不做任何类型检查&#xff0c;仅仅是展开。 const常量有具体的类型&#xff0c;在编译阶段会执行类型检查。 (3) 存储方式不同 defin…

1190. 反转每对括号间的子串 golang反转字符串

1190. 反转每对括号间的子串 557. 反转字符串中的单词 III 344. 反转字符串 golang 这个题比较新&#xff0c;但是面试竟然被问到了。10分钟之内没写出来 给出一个字符串 s&#xff08;仅含有小写英文字母和括号&#xff09;。 请你按照从括号内到外的顺序&#xff0c;逐层…

【转载】define与typedef区别与联系

define与typedef区别与联系 1) #define是预处理指令&#xff0c;在编译预处理时进行简单的替换&#xff0c;不作正确性检查&#xff0c;不关含义是否正 确照样带入&#xff0c;只有在编译已被展开的源程序时才会发现可能的错误并报错。例如&#xff1a; #define PI 3.1415926 程…

LeetCode(合集)两数之和总结 (1,167,1346)

1.两数之和 167. 两数之和 II - 输入有序数组 golang 1346. 检查整数及其两倍数是否存在 一个数组是否存在两个数是target的整数倍&#xff1f; 如果有人知道这是LeetCode哪个题&#xff0c;给我说一下 给每个数做整除&#xff0c;然后在遍历

java在acm中的一些应用

这两天遇到了一些关于大数据处理的题目&#xff0c;发现Java对于这方面的优势很大。最重要的是代码量小了。于是针对这两天对Java的摸索&#xff0c;写一篇日志。记录一下针对ACM来说常用的Java方面的东西。1、输入首先要想输入需要先包括&#xff1a;[java] view plaincopyimp…

LeetCode 33. 搜索旋转排序数组 golang

33. 搜索旋转排序数组 三个测试用例, 这个题的难度是二分法的左侧条件很难写出来。 4 5 6 0 1 2 3 1 2 3 4 5 6 0 5 1 2 3 4 ( 例如&#xff0c;数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。 搜索一个给定的目标值&#xff0c;如果数组中存在这个目标值&#xff0c;则返…

1346. 检查整数及其两倍数是否存在 golang

1346. 检查整数及其两倍数是否存在 1346. 检查整数及其两倍数是否存在 给你一个整数数组 arr&#xff0c;请你检查是否存在两个整数 N 和 M&#xff0c;满足 N 是 M 的两倍&#xff08;即&#xff0c;N 2 * M&#xff09;。 更正式地&#xff0c;检查是否存在两个下标 i 和 …

codeblocks快捷键(转载)

日常编辑 ? 按住Ctrl滚滚轮&#xff0c;代码的字体会随你心意变大变小。 ? 在编辑区按住右键可拖动代码&#xff0c;省去拉&#xff08;尤其是横向&#xff09;滚动条之麻烦&#xff1b;相关设置&#xff1a;Mouse Drag Scrolling。 ? CtrlD可复制当前行或选中块。 ? Ctrl…

45. 跳跃游戏 II golang 动态规划

45. 跳跃游戏 II 给定一个非负整数数组&#xff0c;你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 你的目标是使用最少的跳跃次数到达数组的最后一个位置。 示例: 输入: [2,3,1,1,4] 输出: 2 解释: 跳到最后一个位置的最小跳跃数是 2…

Codeforces 55D Beautiful Number (数位统计)

把数位dp写成记忆化搜索的形式&#xff0c;方法很赞&#xff0c;代码量少了很多。 下面为转载内容&#xff1a; a positive integer number is beautiful if and only if it is divisible by each of its nonzero digits. 问一个区间内[l,r]有多少个Beautiful数字 范围9*…

学籍管理系统 c++作业

首先上费老的设计要求&#xff0c;看到这个题目我也是晕了的&#xff0c;因为即便以前做过两版的通讯录和学生系统&#xff0c;一个是练习类的使用&#xff0c;另一个则是练习stl的使用&#xff0c;咋一看&#xff0c;这个要求也没什么难处&#xff0c;可是要细想来&#xff0c…

26. 删除排序数组中的重复项 golang

26. 删除排序数组中的重复项 给定一个排序数组&#xff0c;你需要在 原地 删除重复出现的元素&#xff0c;使得每个元素只出现一次&#xff0c;返回移除后数组的新长度。 不要使用额外的数组空间&#xff0c;你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。…