elasticsearch multi_match的一个小坑

博客原文
安利一篇我翻译的国外大牛的神经网络入门文章

最近在使用elasticsearch的multi_match搜索时候,使用下面的body对一个字段下的所有字段进行递归搜索,但是当这些子字段出现数值类型的时候,就会报异常了,具体讨论可以参考
https://github.com/elastic/elasticsearch/issues/3975
解决方法是加入lenient字段,参考下面的body

{
    "query": {
        "bool": {
            "should": [
                {
                    "match": {
                        "user_id": {
                            "query": "qwe",
                            "boost": 5
                        }
                    }
                },
                {
                    "multi_match": {
                        "query": "qwer",
                        "lenient": "true",  --ignore values that don't fit specific fields
                        "fields": [
                            "device_brand",
                            "device_manufacturer",
                            "user_properties.*" ---表明搜索此字段下的所有子字段
                        ]
                    }
                },
                {
                    "query_string": {
                        "query": "*qwe*",
                        "default_field": "user_id",
                        "boost": 5
                    }
                }
            ]
        }
    },
    "size": 10,
    "sort": ["_score",{"session_id": "asc"}]

你可能感兴趣的:(大数据)