如何通过 go-elasticsearch 包添加映射
How to add mapping via go-elasticsearch package
基本上,当我尝试将新文档插入到不存在的索引时,它会自动设置为动态映射。
但是我有一些问题,有时我想更改 ES 上字段的数据类型。
我想通过我的 go-lang 服务设置它,但看起来 go-elasticsearch 包不支持它?如果我错了请纠正我
您可以使用 go-elasticsearch/esapi go-elasticsearch/esapi
创建索引及其映射
创建如下请求:
mapping := `{
"settings": {
"number_of_shards": 1,
"number_of_replicas": 1
},
"mappings": {
"properties": {
"name": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"message": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
}
}`
// Index - pass index name
// Body - pass mapping, settings etc
indexReq := esapi.IndicesCreateRequest{
Index: "my-index",
Body: strings.NewReader(string(mapping)),
}
resp, err := indexReq.Do(ctx, elasticclient)
if err != nil {
// handle error
}
通过这种方式,您可以创建具有特定映射的新索引
基本上,当我尝试将新文档插入到不存在的索引时,它会自动设置为动态映射。 但是我有一些问题,有时我想更改 ES 上字段的数据类型。
我想通过我的 go-lang 服务设置它,但看起来 go-elasticsearch 包不支持它?如果我错了请纠正我
您可以使用 go-elasticsearch/esapi go-elasticsearch/esapi
创建索引及其映射创建如下请求:
mapping := `{
"settings": {
"number_of_shards": 1,
"number_of_replicas": 1
},
"mappings": {
"properties": {
"name": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"message": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
}
}`
// Index - pass index name
// Body - pass mapping, settings etc
indexReq := esapi.IndicesCreateRequest{
Index: "my-index",
Body: strings.NewReader(string(mapping)),
}
resp, err := indexReq.Do(ctx, elasticclient)
if err != nil {
// handle error
}
通过这种方式,您可以创建具有特定映射的新索引