У меня есть это поле в моем отображении:
"status" : {
"type" : "byte"
},
Когда я запускаю следующий запрос:
POST /my_index/_search
{
"query": {
"term": {
"status": {
"value": "blah"
}
}
}
}
Я получаю:
{
"error": {
"root_cause": [
{
"type": "query_shard_exception",
"reason": "failed to create query: {\n \"term\" : {\n \"status\" : {\n \"value\" : \"blah\",\n \"boost\" : 1.0\n }\n }\n}",
"index_uuid": "0JkHFuT3TjS6luoEZTtBDw",
"index": "my_index"
}
],
"type": "search_phase_execution_exception",
"reason": "all shards failed",
"phase": "query",
"grouped": true,
"failed_shards": [
{
"shard": 0,
"index": "my_index",
"node": "psHswpZCQlm-7fwW4IYlcw",
"reason": {
"type": "query_shard_exception",
"reason": "failed to create query: {\n \"term\" : {\n \"status\" : {\n \"value\" : \"blah\",\n \"boost\" : 1.0\n }\n }\n}",
"index_uuid": "0JkHFuT3TjS6luoEZTtBDw",
"index": "my_index",
"caused_by": {
"type": "number_format_exception",
"reason": "For input string: \"blah\""
}
}
}
]
},
"status": 400
}
Я получаю значение для поиска из формы фильтра, и так как это происходит во многих местах, я не хочу рефакторинг тонны кода для проверки моего ввода.
Поэтому мой вопрос, как я могу игнорировать такие ошибки, поэтому запрос просто ничего не возвращает или, в частности, игнорирует этот фильтр - либо это приемлемо.
Или, альтернативно, есть ли способ изменить поведение запроса, чтобы просто попытаться привести приведенное значение в целое число, соответствующее сопоставлению?