我们目前正在使用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以便"无效"只是过滤文件而不抛出异常并打破复制?
感谢。
答案 0 :(得分:1)
{
"tweet" : {
"dynamic": "strict",
"properties" : {
"message" : {"type" : "string", "store" : true }
}
}
}
http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/mapping-dynamic-mapping.html