elasticsearch “如何拒绝”;“无效”;ElasticSearch中的文档,elasticsearch,couchbase,elasticsearch,Couchbase" /> elasticsearch “如何拒绝”;“无效”;ElasticSearch中的文档,elasticsearch,couchbase,elasticsearch,Couchbase" />

elasticsearch “如何拒绝”;“无效”;ElasticSearch中的文档

elasticsearch “如何拒绝”;“无效”;ElasticSearch中的文档,elasticsearch,couchbase,elasticsearch,Couchbase,我们目前正在使用Couchbase插件(transport Couchbase)将数据传输并索引到ElasticSearch()中 我在这里查看了ElasticSearch的映射文档: 我的理解是,如果您依赖ElasticSearch的默认值,那么一旦文档被索引,ElasticSearch将为该文档类型创建动态映射。这是我们默认的 我们遇到了这样的问题:在添加了一个特定的文档类型之后,当传输插件插入一个“无效”的文档(文档的字段类型现在不同了——从字符串->数组),ElasticSearch抛

我们目前正在使用Couchbase插件(transport Couchbase)将数据传输并索引到ElasticSearch()中

我在这里查看了ElasticSearch的映射文档:

我的理解是,如果您依赖ElasticSearch的默认值,那么一旦文档被索引,ElasticSearch将为该文档类型创建动态映射。这是我们默认的

我们遇到了这样的问题:在添加了一个特定的文档类型之后,当传输插件插入一个“无效”的文档(文档的字段类型现在不同了——从字符串->数组),ElasticSearch抛出一个异常,并从根本上中断了从Couchbase到ElasticSearch的复制。例外情况如下所示:

 Caused by: org.elasticsearch.ElasticsearchIllegalArgumentException: unknown property 
 [xyz]
 java.lang.RuntimeException: indexing error MapperParsingException[failed to parse
 [doc.myfield]]; nested: ElasticsearchIllegalArgumentException[unknown property[xyz]] 
是否有一种方法可以配置ElasticSearch,以便在不引发异常和破坏复制的情况下过滤“无效”文档

谢谢

{
    "tweet" : {
        "dynamic": "strict",
        "properties" : {
            "message" : {"type" : "string", "store" : true }
        }
    }
}

如果您不能按照自己的意愿定义文档的映射,请在
elasticsearch.yml
文件中设置
index.mapper.dynamic:false
,理论上(未测试的)elasticsearch(在我看来)应该拒绝无效文档。只是想一想,映射太弱,无法正确检查文档。基本上,它只允许字段名和基本类型。没有词汇表、范围、查找等。如果可以定义自定义类型,它可能会工作。