2016-08-30 55 views
1

我有这样数字格式异常对于字符串类型

{ 
    "settings": { 
      "analysis": { 
       "filter": { 
        "nGramFilter": { 
         "type": "nGram", 
         "min_gram": 3, 
         "max_gram": 20, 
         "token_chars": [ 
          "letter", 
          "digit", 
          "punctuation", 
          "symbol" 
         ] 
        }, 
        "email" : { 
         "type" : "pattern_capture", 
         "preserve_original" : 1, 
         "patterns" : [ 
          "([^@]+)", 
          "(\\p{L}+)", 
          "(\\d+)", 
          "@(.+)" 
         ] 
        }, 
        "number" : { 
         "type" : "pattern_capture", 
         "preserve_original" : 1, 
         "patterns" : [ 
          "([^+-]+)", 
          "(\\d+)" 
         ] 
        }, 
        "edgeNGramFilter": { 
         "type": "nGram", 
         "min_gram": 1, 
         "max_gram": 10, 
         "token_chars": [ 
          "letter", 
          "digit", 
          "punctuation", 
          "symbol" 
         ] 
        } 
       }, 
       "analyzer": { 
        "nGramAnalyzer": { 
         "type": "custom", 
         "tokenizer": "whitespace", 
         "filter": [ 
          "lowercase", 
          "nGramFilter" 
         ] 
        }, 
        "whitespaceAnalyzer": { 
         "type": "custom", 
         "tokenizer": "whitespace", 
         "filter": [ 
          "lowercase" 
         ] 
        }, 
        "email" : { 
         "tokenizer" : "uax_url_email", 
         "filter" : [ 
          "email", 
          "lowercase", 
          "unique" 
         ] 
        }, 
        "number" : { 
         "tokenizer" : "whitespace", 
         "filter" : [ "number", "unique" ] 
        }, 
        "edgeNGramAnalyzer": { 
         "type": "custom", 
         "tokenizer": "whitespace", 
         "filter": [ 
          "lowercase", 
          "edgeNGramFilter" 
         ] 
        } 
       } 
      } 
     }, 
    "users": { 
     "mappings": { 
      "user_profiles": { 
       "properties": { 
        "firstName": { 
         "type": "string", 
         "analyzer": "nGramAnalyzer", 
         "search_analyzer": "whitespaceAnalyzer" 
        }, 
        "lastName": { 
         "type": "string", 
         "analyzer": "nGramAnalyzer", 
         "search_analyzer": "whitespaceAnalyzer" 
        }, 
        "email": { 
         "type": "string", 
         "analyzer": "email", 
         "search_analyzer": "whitespaceAnalyzer" 
        }, 
        "score" : { 
         "type": "string" 
        }, 
        "homeLandline": { 
         "type": "string", 
         "analyzer": "number", 
         "search_analyzer": "whitespaceAnalyzer" 

        }, 
        "dob": { 
         "type": "date", 
         "format": "yyyy-MM-dd HH:mm:ss" 
        }, 
        "mobile": { 
         "type": "integer" 
        }, 
        "residenceCity": { 
         "type": "string", 
         "analyzer": "edgeNGramAnalyzer", 
         "search_analyzer": "whitespaceAnalyzer" 
        }, 
        "created_at": { 
         "type": "date", 
         "format": "yyyy-MM-dd HH:mm:ss" 
        }, 
       } 
      } 
     } 
    } 
} 

映射我可以得到分数作为整数以及“NA”,所以我映射的类型为字符串,但同时发布数据的索引i我得到数字格式异常。

例如:

如果我发布第一个数据为整数,然后是“NA”。我得到这些例外。

在检查我的日志文件我收到此错误:

[2016年8月29日15点19分01秒] elasticlog.WARNING:响应[ “{\” 错误\“:{\ “root_cause \”:[{\“type \”:\“mapper_parsing_exception \”,\“reason \”:\“failed to parse [score] \”}],\“type \”:\“mapper_parsing_exception \ “,\”reason \“:\” 解析 [得分] \“,\”cause_by \“:{\”type \“:\”number_format_exception \“,\”reason \“:\”对于 输入字符串:\“NH \”\“}},\”status \“:400}”] []

回答

0

您的映射不正确。它应该是,假设,users是索引名和user_profiles是类型:

{ 
    "users": { 
     "mappings": { 
     "user_profiles": { 
      "properties": { 
       "score": { 
        "type": "string" 
       } 
      } 
     } 
     } 
    } 
} 

你有一个失踪mappingsuser_profiles之前。

+0

但这不是问题。我已更新它忘记添加映射 – Parithiban

+0

那么为什么你没有在你原来的帖子中提到这个? –

+0

提供用于索引该文档的完整(包括URL)命令。另外,提供'GET/users/_mapping'的输出。 –