Elasticsearch: 悪いジオポイントフィールドはエラーをスローするはずです

作成日 2014年03月11日  ·  3コメント  ·  ソース: elastic/elasticsearch

ドキュメントのインデックス作成時に不適切な形式のオブジェクトがジオポイントに渡されると、エラーがスローされます。 代わりに、不良ジオポイントの後のフィールドは無視されます。

PUT /test
{
  "mappings": {
    "foo": {
      "properties": {
        "loc": {
          "type": "geo_point"
        }
      }
    }
  }
}

PUT /test/foo/1
{
  "loc": { "lat": 0, "lon": 0 },
  "tag": "ok"
}

PUT /test/foo/2
{
  "loc": {
    "loc": {
      "lat": 0,
      "lon": 0
    }
  },
  "tag": "not_ok"
}

GET /test/_search?search_type=count
{
  "facets": {
    "tags": {
      "terms": {
        "field": "tag"
      }
    }
  }
}

結果:

{
   "took": 1,
   "timed_out": false,
   "_shards": {
      "total": 5,
      "successful": 5,
      "failed": 0
   },
   "hits": {
      "total": 2,
      "max_score": 0,
      "hits": []
   },
   "facets": {
      "tags": {
         "_type": "terms",
         "missing": 1,
         "total": 1,
         "other": 0,
         "terms": [
            {
               "term": "ok",
               "count": 1
            }
         ]
      }
   }
}
>bug v1.1.0 v2.0.0-beta1

最も参考になるコメント

誰かが対応する例外をグーグルで検索した場合に備えて。 Elasticsearch 1.1.0で不完全またはその他の無効なgeo_pointフィールドを含むドキュメントにインデックスを付けようとすると、「MapperParsingException [failed to parse]; nested:ElasticsearchParseException [field [lat] missing];」などの例外が発生します。 または「MapperParsingException [解析に失敗しました];ネスト:ElasticsearchParseException [geo_pointexpected];」の場合、解決策はgeo_pointフィールド全体をスキップすることです。 この要点を参照してください: https

全てのコメント3件

エラーをスローするための+ 1 @ chillingこれは簡単なはずです。

@ s1monw @clintongormley私はそれを修正します

誰かが対応する例外をグーグルで検索した場合に備えて。 Elasticsearch 1.1.0で不完全またはその他の無効なgeo_pointフィールドを含むドキュメントにインデックスを付けようとすると、「MapperParsingException [failed to parse]; nested:ElasticsearchParseException [field [lat] missing];」などの例外が発生します。 または「MapperParsingException [解析に失敗しました];ネスト:ElasticsearchParseException [geo_pointexpected];」の場合、解決策はgeo_pointフィールド全体をスキップすることです。 この要点を参照してください: https

このページは役に立ちましたか?
0 / 5 - 0 評価