例如:我有索引人员和文档类型人员信息。我明确定义了它的Map:
curl -XPUT 'http://localhost:9200/people/_mapping/person-info' -d '
{
"person-info" : {
"properties" : {
// some mapping
}
}
}
有一次我错误地将一些文档插入到person\u info而不是person info。因此elasticsearch自动创建了新的文档类型person\ u info,并使用标准Map,这对我们来说并不合适。没有关于这个的警告,所以我没有注意到代码中的错误。所以现在我有很多不同Map的文档。
有没有办法配置elasticsearch以防止在特定索引中创建新类型?
2条答案
按热度按时间bogh5gae1#
是的,有。您可以通过在elasticsearch.yml文件中添加以下行来禁用动态Map。
现在,如果您尝试使用
person_info
,它将失败。3mpgtkmj2#
不,您不能更改此行为:此字段是必需的,并且在添加新文档时,将使用此字段对其进行索引。如果字段不存在,elasticsearch将不知道如何为文档编制索引。如果缺少该类型的Map,则会创建一个默认Map。
您只能禁用动态Map创建:https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-dynamic-mapping.html