asticseach Как добавить тип поиска в теле запроса - PullRequest
0 голосов
/ 30 мая 2018

У меня есть запрос, в котором я использую search_type как

GET /test_videos/_search?search_type=dfs_query_then_fetch&explain=true
{
  "query": {
    "bool": {
      "must": {
        "multi_match": {
                  "query": "funny",
                  "fields": ["title"]
                 }
              }
            }
}
}

, который работает нормально и дает желаемый результат.

Я также могу указать объяснение в теле следующим образом:

GET /test_claim_videos/_search?search_type=dfs_query_then_fetch
{ "explain" : true,
  "query": {
    "bool": {
      "must": {
        "multi_match": {
                  "query": "funny",
                  "fields": ["title", "asset_name", "description", "tags.name", "asset_group_name.humanized", "credit"]
                 }
              }
            }
}
}

Но я хочу указать search_type как dfs_then_fetch внутри тела.Если я делаю

GET /test_claim_videos/_search
{ "search_type" : "dfs_query_then_fetch",
  "explain" : true,
  "query": {
    "bool": {
      "must": {
        "multi_match": {
                  "query": "funny",
                  "fields": ["title", "asset_name", "description", "tags.name", "asset_group_name.humanized", "credit"]
                 }
              }
            }
}
}

Возникает ошибка:

{
  "error": {
    "root_cause": [
      {
        "type": "parsing_exception",
        "reason": "Unknown key for a VALUE_STRING in [search_type].",
        "line": 1,
        "col": 19
      }
    ],
    "type": "parsing_exception",
    "reason": "Unknown key for a VALUE_STRING in [search_type].",
    "line": 1,
    "col": 19
  },
  "status": 400
}

Почему я не могу указать здесь тип поиска в теле и как это исправить?Мне нужно, чтобы он был в теле, так как я использую сторонний жевательный камень, который не позволяет передавать URL.

Ответы [ 2 ]

0 голосов
/ 30 мая 2018

Если кто-то знает точный ответ, пожалуйста, помогите.На данный момент я уменьшил свои шарды / индекс до 1, и это работает правильно.

0 голосов
/ 30 мая 2018

К сожалению, у вас нет возможности сделать это.Вы можете прочитать больше в документации :

Из вышесказанного, search_type и request_cache должны быть переданы как параметры строки запроса.

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