如何拒绝"无效" ElasticSearch中的文档

时间:2014-06-12 08:09:57

标签: elasticsearch couchbase

我们目前正在使用Couchbase插件(transport-couchbase)将数据传输并索引到ElasticSearch(http://docs.couchbase.com/couchbase-elastic-search/

我在这里看了一下ElasticSearch的映射文档: http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/mapping.html

我的理解是,如果您依赖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以便"无效"只是过滤文件而不抛出异常并打破复制?

感谢。

1 个答案:

答案 0 :(得分:1)

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

http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/mapping-dynamic-mapping.html