elasticsearch - 如何在elasticsearch中映射动态字段值?

标签 elasticsearch mapping couchbase

我正在映射一个couchbase网关文档,我想告诉elasticsearch避免索引网关添加的内部属性,如“_sync”,这个对象包含另一个名为“channels”的对象,它具有以下形式:

"channels": {
  "i7de5558-32ad-48ca-bf91-858c3a1e4588": 12
}

所以我猜这个对象的映射是这样的:
"channels": {
     "type": "object",
     "properties": {
         "i7de5558-32ad-48ca-bf91-858c3a1e4588": {
             "type": "integer", 
             "index": "not_analyze"
         }
     }
}

问题是键总是在变化,所以我不知道我是否应该为这个属性使用像这样的通配符 "*": {"type": "integer", "index": "not_analyze"} 或者做别的东西。
请问有什么建议吗?

最佳答案

如果字段是整数类型,则不必在映射中显式提供它们。您可以使用这些字段创建一个空映射、索引文档。 Elasticsearch 将推断字段的类型并动态更新映射。您也可以使用dynamic templates为了这。

{
 "mappings": {
  "my_type": {
     "dynamic_templates": [
        {
           "analysed_string_template": {
              "path_match": "channels.*",
              "mapping": {
                 "type": "integer"
              }
           }
        }
     ]
    }
   }
 } 

关于elasticsearch - 如何在elasticsearch中映射动态字段值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35507741/

相关文章:

ruby-on-rails - 使用 Couchbase 设计 Rails

c# - Couchbase 4.5 返回部分文档

java - Mongodb 中二进制文件的全文搜索

elasticsearch - 使用雪球分析器在Elasticsearch中连字符出现奇怪的问题

iphone - UIScrollView ImageView 顶部有针脚

ios - 休息套件 : getting mappingResult with "<null>" in all requests

couchbase - 使用 mutate_in 将子文档更新为列表

amazon-web-services - 重新索引时Amazon Elasticsearch 1.5挂起

elasticsearch - Elasticsearch-添加节点而不复制吗?

mongodb - 通过 mongodb River 在 elasticsearch 中创建索引的映射未生效