Golang使用Elasticsearch

Python013

Golang使用Elasticsearch,第1张

创建es.go文件

根据elasticsearch版本拉取对应的go包: github.com/elastic/go-elasticsearch

API文档: https://pkg.go.dev/github.com/elastic/go-elasticsearch/[email protected]/esapi?tab=doc

Index 在索引中创建或更新文档

索引不存在的情况下,会自动创建索引。

默认的_type(类型)是_doc,下面是指定doc类型创建添加的。

Search 搜索

DeleteByQuery 通过匹配条件删除文档

Delete通过_id删除文档

Create 添加文档(需要指定_id,_id已存在返回409)

Get 通过id获取文档

Update 通过_id更新文档

UpdateByQuery 通过匹配条件更新文档

我们在mian函数中,首先初始化配置文件,然后新建http连接。

这个连接创建之后,监听服务器的9999端口。如果url的路径后缀为 "/ws",就转发到ws/ws.go中的IndexHandler方法中。

这个方法中首先我们创建一个websocket的Upgrader实例,然后我们使用Upgrader的upgrade方法来升级一下我们的连接为长连接。

升级完成之后会返回一个*websocket.Conn的连接,我们之后所有的关于连接的操作,都是基于该conn的。

在该连接完成之后,我们将连接存放到一个名为Client的map中,以便之后管理更为方便。

之后,我们启动一个goroutine来读取连接中发送的信息内容,再根据内容进行相应的操作。

for index,val := range a {

if val == '好' {

fmt.println(index,x)

}

}

对string做range得到的val是int32类型,直接用单引号比较就行