ElasticSearch: использовать запрос multi_match с пробелами в поле и без него

У меня есть требование таким образом, когда мне нужно искать текст в двух полях, а именно. город и почтовый индекс. Я использую запрос multi_match для полей "city" и "zipCode", как указано ниже,

{
    "query": {
        "bool": {
            "must": [
                {
                    "multi_match" : {
                        "query":    "L4N 9H7", 
                        "fields": [ "city", "zipCode" ] 
                        ,"fuzziness" : "AUTO"
                        ,"prefix_length" : 2
                    }
                },
                { 
                    "match": { 
                        "name": { 
                            "query": "bari", 
                            "fuzziness": 2
                        } 
                    }
                }
            ]
        }
    }
}

Это работает хорошо, если поиск zipCode строки как "L4N 9H7", а именно.

 "multi_match" : {
     "query":"L4N 9H7", 
     "fields": [ "city", "zipCode" ], 
     "fuzziness" : "AUTO",
     "prefix_length" : 2
 }

Но это терпит неудачу, когда я пытаюсь zipCode без пробела как "L4N9H7", а именно.

  "multi_match" : {
         "query":"L4N 9H7", 
         "fields": [ "city", "zipCode" ], 
         "fuzziness" : "AUTO",
         "prefix_length" : 2
     }

Какой твик мне нужно использовать, чтобы он работал и без пробелов?

0 ответов

Другие вопросы по тегам