Игнорирование исключений, таких как number_format_exception, при поиске в Elasticsearch 6.3 - PullRequest
0 голосов
/ 08 января 2020

У меня есть это поле в моем отображении:

          "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
}

Я получаю значение для поиска из формы фильтра, и так как это происходит во многих местах, я не хочу рефакторинг тонны кода для проверки моего ввода.

Поэтому мой вопрос, как я могу игнорировать такие ошибки, поэтому запрос просто ничего не возвращает или, в частности, игнорирует этот фильтр - либо это приемлемо.

Или, альтернативно, есть ли способ изменить поведение запроса, чтобы просто попытаться привести приведенное значение в целое число, соответствующее сопоставлению?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...