【问题标题】:Proper Mapping for dynamic fields动态字段的正确映射
【发布时间】:2013-07-05 16:13:31
【问题描述】:

我的文档结构如下:

{
  "some_field": "some_data",
  "entries": {
    {"id": "some_id", "type": "some_type", "value": "some_value"},
    {"id": "another_id", "type": "another_type", "value": {"foo": 1, "bar": "two"}
  }
}

所以我想根据“类型”字段映射条目。 我应该使用哪种映射类型或标志? 或者我可能需要更改我的文档结构?

【问题讨论】:

  • 对于您当前的结构,您将使用哪个“类型”字段进行映射?两个“条目”对象是作为单独的文档索引还是整个对象是一个文档?也许您可以提供实际对象及其关系的描述。
  • 这两个条目应使用“值”字段进行索引

标签: json mapping elasticsearch


【解决方案1】:

你能用这个吗

{
   "some_field":"some_data",
   "entries":[{
         "id":"some_id",
         "type":"some_type",
         "value":"some_value"
      },
      {
         "id":"another_id",
         "type":"another_type",
         "value":{
            "foo":1,
            "bar":"two"
         }
      }]
}

【讨论】:

  • 为什么使用列表会有所作为?
  • 是json语法。除非如何理解哪个是对象或哪个是数组,否则您可以在此站点中检查您的 json jsonlint.com 和 json 语法 json.org
  • 我看到的问题是,除非这两个条目被索引为嵌套文档,否则原始问题没有得到解答,因为您不能索引为单个文档,将其映射为两个“类型”字段。
  • 因为你应该对条目使用任何循环
猜你喜欢
  • 1970-01-01
  • 2014-03-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多