如何为弹性搜索全局设置 "index" : "not_analyzed"

how to set "index" : "not_analyzed" globally for elastic search

我面临一个问题,如何设置 "index" : "not_analyzed" 全局弹性搜索映射 json 格式文件中的字符串值,这样它就不会被标记化做报告的时候。目前我已经单独进行了检查。但是,当一个新的 属性 进来时,它会产生问题。 (使用弹性搜索版本 1.7.2)

例如:- 如果我给一个新的字符串字段说地址,当出现像 "bangalore india" 这样的值时,它将被视为 2 个单独的值,如 "Bangalore" 和 "india" 正在做报告。

这是我正在使用的示例 json 映射器文件格式。让我知道如何在全局范围内设置它......

{
"user" : {
      "_index" : {
         "enabled" : true
     },
     "_id" : {
         "index": "not_analyzed",
         "store" : "yes"
     },
    "properties" : {

         "id" : {
            "type" : "long"
        },
        "name" : {
            "type" : "string",
            "index" : "not_analyzed"
        },
        "presentValue" : {
            "type" : "string",
            "index" : "not_analyzed"
        },
        "dateOfBirth" : {
            "type" : "date" 
        }

    }
}
}

创建索引时需要使用 dynamic_template。使用下面的动态 strings 映射,将动态创建的所有新字符串字段都将是 not_analyzed

PUT my_index
{
  "mappings": {
    "user": {
      "_index": {
        "enabled": true
      },
      "_id": {
        "store": "yes"
      },
      "dynamic_templates": [
        {
          "strings": {
            "match_mapping_type": "string",
            "match": "*",
            "mapping": {
              "type": "string",
              "index": "not_analyzed"
            }
          }
        }
      ],
      "properties": {
        "id": {
          "type": "long"
        },
        "name": {
          "type": "string",
          "index": "not_analyzed"
        },
        "presentValue": {
          "type": "string",
          "index": "not_analyzed"
        },
        "dateOfBirth": {
          "type": "date"
        }
      }
    }
  }
}

以下将确保索引 myindex 中的所有字段都有一个额外字段作为原始字段

curl -X PUT "http://localhost:9200/myindex" -d '{
  "settings": {
    "index": {
      "number_of_shards": 1,
      "number_of_replicas": 1
    }
  },
  "mapping": {
    "_default_": {
      "dynamic_templates": [
        {
          "multi_strings": {
            "match_mapping_type": "string",
            "mapping": {
              "type": "string",
              "fields": {
                "raw": {
                  "type": "string",
                  "index": "not_analyzed"
                }
              }
            }
          }
        }
      ]
    }
  }
}'