【问题标题】:How to create a static mapping but leave the rest of the fields as dynamic?如何创建静态映射但将其余字段保留为动态?
【发布时间】:2019-04-02 13:00:16
【问题描述】:

当我将 JSON 数据导入 Elasticsearch 时,我拥有的字段之一是价格字段,但在 JSON 文档中它表示为字符串。我想知道是否可以只为这个字段设置一个静态映射,而让其余字段动态映射?

【问题讨论】:

    标签: elasticsearch


    【解决方案1】:

    默认情况下启用动态字段映射。因此,当被索引的文档具有映射中不存在的字段时,elasticsearch 会自动更新映射。映射中已有的任何字段都按原样使用。因此,您需要为price 字段添加属性并创建索引,如下所示:

    PUT myindex
    {
      "mappings": {
        "_doc": {
          "properties": {
            "price": {
              "type": "float"
            }
          }
        }
      }
    }
    

    以上内容确保价格字段始终由浮点值索引。文档中的任何其他字段都将用于向映射动态添加字段。

    【讨论】:

      【解决方案2】:

      您可以仅为该字段创建映射,而保留所有其他字段。当第一个文档命中时,将自动为其余字段创建弹性搜索映射。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-09-05
        • 1970-01-01
        • 2021-10-28
        • 1970-01-01
        相关资源
        最近更新 更多