#elasticsearch #query-string
Вопрос:
Документ в elastic содержит сопоставления полей только для каталога полей и типа@. теперь, если пользователь отправляет несуществующее поле (код страны) в поиске, есть ли способ в elastic дать указание игнорировать поле в поиске ?
{
"query": {
"bool": {
"must": [
{
"query_string": {
"query": "(\*catalog\*:Trunk) AND (\*@type\*:Product) AND (\*countryCode\*:USA)"
}
}
]
}
}
}
Комментарии:
1. По умолчанию он выполняет строгое соответствие и возвращает 0 результатов, так как код страны не является допустимым полем
2. Вам нужно проанализировать запрос и сделать это самостоятельно. Это одна из причин, по которой редко бывает хорошей идеей позволять конечным пользователям напрямую предоставлять строку поиска
query_string
.