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

时间:2015-10-31 05:35:16

标签: json elasticsearch kibana

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

例如: - 如果我给出一个新的字符串字段说地址,那么当一个像" bangalore india"进来后,它会被视为2个sepparate值,因为" Bangalore"和"印度"在制作报告时。

以下是我正在使用的示例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" 
        }

    }
}
}

2 个答案:

答案 0 :(得分:4)

创建索引时需要使用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"
        }
      }
    }
  }
}

答案 1 :(得分:0)

以下内容将确保索引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"
                }
              }
            }
          }
        }
      ]
    }
  }
}'