ElasticSearch query_string 长字段文本搜索

ElasticSearch query_string text search on long field

使用以下查询

{
    "query": {
        "query_string": {
            "query": "james",
            "fields": ["briefdescription", "sonumber"]
        }
    }
}

我得到"reason": "failed to create query: For input string: \"james\"",

我认为是 sonumber 的问题是一个 long 字段,它无法在该字段上搜索“james”,但如果我只使用 default_field: "*",它不会t 抛出错误。这是为什么? default_field 是否跳过不兼容的类型?

是的,这可能就是原因,您也可以使用 lenient parameter 忽略这些错误来缓解此问题:

{
    "query": {
        "query_string": {
            "query": "james",
            "fields": ["briefdescription", "sonumber"],
    -->     "lenient": true
        }
    }
}