В основном, когда я пытаюсь вставить новый документ в несуществующий индекс, он автоматически устанавливает динамическое сопоставление. Но у меня есть проблемы, когда иногда я хочу изменить тип данных полей в 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
}
таким образом вы можете создать новый индекс с определенным сопоставлением
Всегда пожалуйста. Давайте расти, помогая друг другу
Большое спасибо. Ты такое благословение