Как мне обработать «неизвестное поле» при запросе нескольких индексов? - PullRequest
0 голосов
/ 27 июня 2019

При попытке выполнить запрос по нескольким индексам я получаю следующую ошибку:

{
    "type": "parsing_exception",
    "reason": "unknown field [locations.addresses.lat_lon]",
    "line": 1,
    "col": 0
}

Это имеет смысл, поскольку один из моих индексов не содержит этого свойства.Как бы я мог использовать одно поле для одного индекса и другое поле для другого индекса?

В настоящее время мой запрос представляет собой запрос показателя функции, который, похоже, не поддерживает параметр ignore_mapping, которыйдругие запросы имеют (используя это поле в функции, которая создает счет).У меня также есть это как часть Geo Distance Query, который поддерживает опцию ignore_mapping, и эта часть работает.

Пример запроса:

{

  "min_score": 0.1,
  "query": {
    "function_score": {
      "score_mode": "multiply",
      "query": {
        "bool": {
          "filter": [],
          "minimum_should_match": 1,
          "should": [
            {
              "bool": {
                "minimum_should_match": 1,
                "filter": [
                  {
                    "term": {
                      "_index": {
                        "value": "network_connections"
                      }
                    }
                  },
                  {
                    "nested": {
                      "path": "locations",
                      "ignore_unmapped": true,
                      "query": {
                        "geo_distance": {
                          "distance": "25mi",
                          "locations.addresses.lat_lon": {
                            "lat": 30.432242,
                            "lon": -97.7145152
                          }
                        }
                      }
                    }
                  }
                ],
                "should": {
                  "dis_max": {
                    "queries": [
                      {
                        "common": {
                          "name": {
                            "query": "test",
                            "cutoff_frequency": 0.01,
                            "boost": 2
                          }
                        }
                      }
                    ]
                  }
                }
              }
            }
          ]
        }
      },
      "functions": [
        {
          "gauss": {
            "locations.addresses.lat_lon": {
              "origin": {
                "lat": 30.432242,
                "lon": -97.7145152
              },
              "offset": "5mi",
              "scale": "12.5mi"
            }
          }
        }
      ]
    }
  }
}

Я делаю дополнительныйЗапрос geo_distance для установления жесткой границы в моем поиске на основе расстояния (я пытался просто изменить функции min_score и gauss, но не смог заставить его работать в качестве жесткой границы).

Мой главный вопроскак избежать ошибки unknown field при поиске по нескольким индексам

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