Поле ElasticSearch Query_String игнорировать, если оно недоступно в документе

#elasticsearch #query-string

Вопрос:

Документ в elastic содержит сопоставления полей только для каталога полей и типа@. теперь, если пользователь отправляет несуществующее поле (код страны) в поиске, есть ли способ в elastic дать указание игнорировать поле в поиске ?

 {
    "query": {
        "bool": {
            "must": [
                {
                    "query_string": {                       
                        "query": "(\*catalog\*:Trunk) AND (\*@type\*:Product) AND (\*countryCode\*:USA)"
                    }
                }
            ]
        }
    }
}
 

Комментарии:

1. По умолчанию он выполняет строгое соответствие и возвращает 0 результатов, так как код страны не является допустимым полем

2. Вам нужно проанализировать запрос и сделать это самостоятельно. Это одна из причин, по которой редко бывает хорошей идеей позволять конечным пользователям напрямую предоставлять строку поиска query_string .