更新对 Elasticsearch 对象类型字段的限制
Update restrictions on Elasticsearch Object type field
我必须存储包含单个 Json 对象的单个字段的文档。该对象具有可变深度和可变架构。
我配置这样的映射:
"mappings": {
"properties": {
"@timestamp": {
"type": "date"
},
"message": {
"type": "object"
}
}
}
它工作正常,Elasticsearch 使用接收到的文档创建和更新映射。
问题是在映射更新后,它拒绝新文档并且不再更新映射。此时我更改了该独立开发者的索引和映射更新。我期待知道正确的解决方案。
例如第一个文档是:
{
personalInfo:{
fistName: "tom"
}
moviesStatistics: {
count: 100
}
}
将更新 Elasticsearch 映射的第二个文档是:
{
personalInfo:{
fistName: "tom",
lastName: "hanks"
},
moviesStatistics: {
count: 100
},
education: {
title: "a title..."
}
}
Elasticsearch 使用 doc1 创建映射并使用 doc2、doc3 等更新它,直到收到大量文档。之后它开始拒绝所有与最后一个映射字段不匹配的文档。
毕竟我在Elasticsearch的主页上找到了解决方案https://www.elastic.co/guide/en/elasticsearch/reference/7.13//dynamic-field-mapping.html
我们可以使用动态映射并简单地使用这个映射:
"mappings": {
"dynamic": "true"
}
您还应该更改此处提到的一些默认限制:
https://www.elastic.co/guide/en/elasticsearch/reference/7.13//mapping-settings-limit.html
我必须存储包含单个 Json 对象的单个字段的文档。该对象具有可变深度和可变架构。 我配置这样的映射:
"mappings": {
"properties": {
"@timestamp": {
"type": "date"
},
"message": {
"type": "object"
}
}
}
它工作正常,Elasticsearch 使用接收到的文档创建和更新映射。 问题是在映射更新后,它拒绝新文档并且不再更新映射。此时我更改了该独立开发者的索引和映射更新。我期待知道正确的解决方案。
例如第一个文档是:
{
personalInfo:{
fistName: "tom"
}
moviesStatistics: {
count: 100
}
}
将更新 Elasticsearch 映射的第二个文档是:
{
personalInfo:{
fistName: "tom",
lastName: "hanks"
},
moviesStatistics: {
count: 100
},
education: {
title: "a title..."
}
}
Elasticsearch 使用 doc1 创建映射并使用 doc2、doc3 等更新它,直到收到大量文档。之后它开始拒绝所有与最后一个映射字段不匹配的文档。
毕竟我在Elasticsearch的主页上找到了解决方案https://www.elastic.co/guide/en/elasticsearch/reference/7.13//dynamic-field-mapping.html 我们可以使用动态映射并简单地使用这个映射:
"mappings": {
"dynamic": "true"
}
您还应该更改此处提到的一些默认限制: https://www.elastic.co/guide/en/elasticsearch/reference/7.13//mapping-settings-limit.html