有没有一种方法来配置elasticsearch,以防止在特定索引中创建新类型?

wgxvkvu9  于 2021-06-15  发布在  ElasticSearch
关注(0)|答案(2)|浏览(290)

例如:我有索引人员和文档类型人员信息。我明确定义了它的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以防止在特定索引中创建新类型?

bogh5gae

bogh5gae1#

是的,有。您可以通过在elasticsearch.yml文件中添加以下行来禁用动态Map。

index.mapper.dynamic: false

现在,如果您尝试使用 person_info ,它将失败。

3mpgtkmj

3mpgtkmj2#

不,您不能更改此行为:此字段是必需的,并且在添加新文档时,将使用此字段对其进行索引。如果字段不存在,elasticsearch将不知道如何为文档编制索引。如果缺少该类型的Map,则会创建一个默认Map。
您只能禁用动态Map创建:https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-dynamic-mapping.html

相关问题