golang入门笔记—ES

ES参考网站

ES的介绍:
Elasticsearch(ES)是一个基于Lucene构建的开源、分布式、RESTful接口的全文搜索引擎。Elasticsearch还是一个分布式文档数据库,其中每个字段均可被索引,而且每个字段的数据均可被搜索,ES能够横向扩展至数以百计的服务器存储以及处理PB级的数据。可以在极短的时间内存储、搜索和分析大量的数据。通常作为具有复杂搜索场景情况下的核心发动机。

ES的基本概念:
1.当你经营一家网上商店,你可以让你的客户搜索你卖的商品。在这种情况下,你可以使用ElasticSearch来存储你的整个产品目录和库存信息,为客户提供精准搜索,可以为客户推荐相关商品。
2.当你想收集日志或者交易数据的时候,需要分析和挖掘这些数据,寻找趋势,进行统计,总结,或发现异常。在这种情况下,你可以使用Logstash或者其他工具来进行收集数据,当这引起数据存储到ElasticsSearch中。你可以搜索和汇总这些数据,找到任何你感兴趣的信息。
3.对于程序员来说,比较有名的案例是GitHub,GitHub的搜索是基于ElasticSearch构建的,在github.com/search页面,你可以搜索项目、用户、issue、pull request,还有代码。共有40~50个索引库,分别用于索引网站需要跟踪的各种数据。虽然只索引项目的主分支(master),但这个数据量依然巨大,包括20亿个索引文档,30TB的索引文件

ES基本概念与关系型数据库的比较:
在这里插入图片描述
ES的安装配置参考链接
(建议装7.2.1版本)
ES的启用:打开bin目录下的elasticsearch.bat
ES默认端口为:127.0.0.1:9200
配置成功时
在这里插入图片描述
查看健康状态

curl -X GET 127.0.0.1:9200/_cat/health?v

查询当前ES集群中所有的indices

curl -X GET 127.0.0.1:9200/_cat/indices?v

创建索引

curl -X PUT 127.0.0.1:9200/student //创建student的库

插入记录

curl -H "ContentType:application/json" -X POST 127.0.0.1:9200/user/person -d '
{
	"name": "dsb",
	"age": 9000,
	"married": true
}'
//向user数据库发送一个person类型的json数据

检索

curl -X GET 127.0.0.1:9200/user/person/_search

ES插入实例

package main

//ES domo

import (
	"context"
	"fmt"

	"github.com/olivere/elastic/v7"
)

//Student ...
type Student struct {
	Name    string `json:"name"`
	Age     int    `json:"age"`
	Married bool   `json:"married"`
}

func (s *Student) run() {
	fmt.Printf("%s在跑...", s.Name)
}

func (s *Student) wang() {
	fmt.Printf("%s在汪...", s.Name)
}

func main() {
	//1.初始化连接,得到一个client
	client, err := elastic.NewClient(elastic.SetURL("http://127.0.0.1:9200"))
	if err != nil {
		panic(err)
	}
	fmt.Println("connect to es success")
	p1 := Student{Name: "Rion", Age: 22, Married: false}
	//链式操作
	put1, err := client.Index().
		Index("Student"). //Index表数据库
		Type("go").       //Type是表
		BodyJson(p1).     //把一个go语言的对象转换为json格式
		Do(context.Background())
	if err != nil {
		panic(err)
	}
	fmt.Printf("Indexed Student %s to index %s,type %s\n", put1.Id, put1.Index, put1.Type)
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值