Ожидается [START_OBJECT] в [поле], но получено [VALUE_STRING] в [geohash_grid] - PullRequest
0 голосов
/ 21 января 2019

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

{
  "mappings": {
    "AssetStatus": {
      "properties": {
        "location": {
          "type": "geo_point"
        },
        "createdate": {
          "type": "date"
        },
        "serialnumber": {
          "type": "text",
          "fielddata": "true"
        }
      }
    }
  }
}

Таким образом, я написал этот запрос.

{
  "query": {
    "bool": {
      "must": [
        {
          "term": {
            "serialnumber": "sn2"
          }
        },
        {
          "geo_bounding_box": {
            "location": {
              "top_left": "52.4, 4.9",
              "bottom_right": "52.3, 5.0"
            }
          }
        }
      ],
      "must_not": [],
      "should": []
    }
  },
  "from": 0,
  "size": 0,
  "aggregations": {
    "SerialNumberGroups": {
      "terms": {
        "field": "serialnumber"
      },
      "aggs": {
        "tops": {
          "top_hits": {
            "sort": [
              {
                "createdate": {
                  "order": "desc"
                }
              }
            ],
            "size": 1
          },
          "aggs": {
            "geohash_grid": {
              "field": "location",
              "precision": 12
            }
          }
        }
      }
    }
  }
}

В этом запросе сначала я ограничиваю документы в зависимости от их серийных номеров и их местоположения, поэтому я группирую по запросу по серийному номеру и по порядку создания, чтобы получить последнюю зарегистрированную запись каждого серийного номера в области. проблема в последней части запроса, когда я должен кластеризовать результат с geohash_grid. Я получаю эту ошибку

"error": {
"root_cause": [
{
"type": "parsing_exception",
"reason": "Expected [START_OBJECT] under [field], but got a [VALUE_STRING] in [geohash_grid]",
"line": 1,
"col": 374
}
],
"type": "parsing_exception",
"reason": "Expected [START_OBJECT] under [field], but got a [VALUE_STRING] in [geohash_grid]",
"line": 1,
"col": 374
},
"status": 400
...