当前位置: 首页 > 知识库问答 >
问题:

字符串类型的数字格式异常

司徒高丽
2023-03-14

我有一张这样的地图

    {
    "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",所以我映射类型为字符串,但在发布数据到索引我得到数字格式异常。

例如:

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

检查日志文件时,我发现以下错误:

[2016-08-29 15:19:01]elasticlog.警告:响应[{\"错误\":{\"root_cause类型\":\"mapper_parsing_exception\",\"原因\":\"未能解析[得分]\"}],\"类型\":\"mapper_parsing_exception\",\"原因\":\"未能解析[得分]\",\"caused_by\":{\"类型\"":\"number_format_exception\",\"原因\":\"对于输入字符串:\"NH\"\"}},\"状态\": 400}"][]"

共有1个答案

萧宁
2023-03-14

您的映射不正确。假设user是索引名,user_profiles是类型:

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

用户配置文件之前,您缺少一个映射

 类似资料:
  • 本文向大家介绍VBA 使用格式将数字类型转换为字符串并将其格式化为字符串,包括了VBA 使用格式将数字类型转换为字符串并将其格式化为字符串的使用技巧和注意事项,需要的朋友参考一下 示例            

  • 我正试图通过使用以下方法来取消加密字符串,但遇到了异常。 我试图将我的加密字符串发送到下面的方法,但它不能得到Byte[],在将字符串转换为Byte[]时得到数字格式异常。 请建议。

  • 现在的Rust资料,无论是Book还是RustByExample都没有统一而完全的介绍Rust的操作符。一个很重要的原因就是,Rust的操作符号和C++大部分都是一模一样的。 一元操作符 顾名思义,一元操作符是专门对一个Rust元素进行操纵的操作符,主要包括以下几个: -: 取负,专门用于数值类型。 *: 解引用。这是一个很有用的符号,和Deref(DerefMut)这个trait关联密切。 !:

  • 问题内容: 我的问题是格式化通过扫描仪输入的字符串。我试图输入“ Result is”,但printf()似乎只看到字符串的“ Result”部分,那么空白命令是什么?谢谢 问题答案: 有几种可能的解决方案,但我相信以下内容将为您提供与其他输入一致的行为: 如果需要,这种方法将允许您在一行上输入所有输入。 例如: 1 1.2结果是 但是,如果您确实希望用户在每次输入后都按一下,则使用Scanner

  • 2.3.1 字符串类型的字面值形式 由于计算机程序本身要用字符序列来表示,因此程序中的命令、变量名、字面值、标点 符号等等都是字符组成的序列,但它们是程序构件而不是数据。这就带来一个问题:如何区 分程序中的某一个字符序列到底是字符串数据还是程序构件?几乎所有编程语言都采用了 加引号的方法来解决这个问题:字符串数据必须用一对引号括起来。 Python 语言提供了字符串数据类型 str,并且在表示字符

  • 这章我们来着重介绍一下字符串。 刚刚学习Rust的同学可能会被Rust的字符串搞混掉,比如str,String, OsStr, CStr,CString等等…… 事实上,如果你不做FFI的话,常用的字符串类型就只有前两种。我们就来着重研究一下Rust的前两种字符串。 你要明白的是,Rust中的字符串实际上是被编码成UTF-8的一个字节数组。这么说比较拗口,简单来说,Rust字符串内部存储的是一个u