首页 > 解决方案 > elasticsearch 索引映射是 Long 但保存的 String 类型

问题描述

弹性搜索版本是 6.8.5

1 - elasticsearch索引映射很长,但保存的数据是字符串类型,为什么?

2 - 我只能按num搜索数据,但不能按字符串搜索,如何使用字符串类型搜索数据

这是我的映射,arr_value 类型很长:

{
"ticket_instance":{
    "properties":{
        "ticket_definition_id":{
            "index":"not_analyzed",
            "type":"string"
        },
        "variable":{
            "type":"nested",
            "properties":{
                "arr_value":{
                    "type":"long"
                },
                "create_time":{
                    "type":"long"
                },
                "last_updated_time":{
                    "type":"long"
                }
            }
        },
        "ticket_definition_key":{
            "index":"not_analyzed",
            "type":"string"
        }
    }
}

}

这是我的异常搜索:

{
"query":{

    "bool":{
        "must":[
            {
                "terms":{
                    "ticket_definition_key":[
                        "e4165ca3-f918-4e03-b0ba-6f2e1d28d70c"
                    ]
                }
            },
            {
                "nested":{
                    "query":{
                        "bool":{

                            "must":[


                                {
                                    "term":{
                                        "variable.arr_value":{
                                            "value":"A-1-name"
                                        }
                                    }
                                } 
                            ]

                        }
                    },
                    "path":"variable",
                    "score_mode":"none"
                }
            }
        ],
        "adjust_pure_negative":true
    }
},
"size":10

}

当我将 arr_value 从“A-1-name”更改为“123”时,搜索工作。使用“A-1-name”时发生 NumberFormatException

标签: elasticsearchtypes

解决方案


推荐阅读