映射用例

映射可以控制数据的索引和查询方式,从而为各种用例实现优化的性能和高效的存储。

示例:忽略格式错误的 IP 地址

以下示例向您展示了如何创建一个映射,该映射规定UDB-SX应当忽略任何包含不符合 ip数据类型规范的格式错误的 IP 地址文档。您可以通过将 ignore_malformed 参数设置为 true 来实现此操作。

创建一个带有“ip”映射的索引

若要创建一个带有“ip”映射的索引,请使用 PUT 请求:

PUT /test-index 
{
  "mappings" : {
    "properties" :  {
      "ip_address" : {
        "type" : "ip",
        "ignore_malformed": true
      }
    }
  }
}

然后添加一个带有错误 IP 地址的文档:

PUT /test-index/_doc/1 
{
  "ip_address" : "malformed ip address"
}

查询索引时,该ip_address字段将被忽略。您可以使用以下请求查询索引:

GET /test-index/_search

响应

{
  "took": 14,
  "timed_out": false,
  "_shards": {
    "total": 1,
    "successful": 1,
    "skipped": 0,
    "failed": 0
  },
  "hits": {
    "total": {
      "value": 1,
      "relation": "eq"
    },
    "max_score": 1,
    "hits": [
      {
        "_index": "test-index",
        "_id": "1",
        "_score": 1,
        "_ignored": [
          "ip_address"
        ],
        "_source": {
          "ip_address": "malformed ip address"
        }
      }
    ]
  }
}

将字符串字段映射为textkeyword类型

要创建一个名为movies1的索引,并使用动态模板将所有字符串字段映射为textkeyword两种类型,您可以使用以下请求:

PUT movies1
{
  "mappings": {
    "dynamic_templates": [
      {
        "strings": {
          "match_mapping_type": "string",
          "mapping": {
            "type": "text",
            "fields": {
              "keyword": {
                "type":  "keyword",
                "ignore_above": 256
              }
            }
          }
        }
      }
    ]
  }
}

此动态模板可确保您文档中的任何字符串字段都将被同时索引为全文类型的test字段和keyword类型的字段。