2016-04-14 8 views
1

こんにちは、Elasticsearchデフォルトのマッピングネストされたフィールド

私はgeo_pointするフィールドを強制しようとしているに取り組んできましたが、フィールドには、ドキュメントの内部フィールドの内側に存在します。私はelasicsearch 1.7を使用しており、すべてのフィールドが一致するように作業しているので、2.3.1にアップグレードできます。現在のダイナミックの 例は、マッピングを作成しました:

{ 
    "index-2016.01.01" : { 
    "mappings" : { 
     "document" : { 
     "properties" : { 
      "geoip" : { 
      "properties" : { 
       "location" : { 
       "type" : "double" 
       } 
      } 
      } 
     } 
     } 
    } 
    } 
} 

は今、私はまったく同じ構造を持ついくつかの文書を持っており、それぞれの新しいインデックスのために、それはgeo_pointとしてマッピングされるように、私は私のデフォルトのマッピングに追加したいと思います。これまでのところ、私はこれを二重として受け入れ続けることはできませんでした。以下は私の現在のデフォルト-mapping.jsonが

{ 
    "_default_" : { 
    "properties" : { 
     "level" : { 
     "type" : "string", 
     "norms" : { 
      "enabled" : false 
     } 
     }, 
     "line" : { 
     "type" : "string", 
     "norms" : { 
      "enabled" : false 
     } 
     }, 
     "geoip" : { 
     "properties" : { 
      "location" : { 
      "type" : "geo_point" 
      } 
     } 
     } 
    } 
    } 
} 

ある任意の助けいただければ幸いです。私はちょうど場所に単純化しようとしました:タイプ:geo_point、私は無駄に他のステップを削除しようとしました。ここで

は、文書の例である:

{ 
    "_index": "logstash-2016.04.14", 
    "_type": "nginx-access", 
    "_id": "AVQV6PXtpRWl9K_VbKfj", 
    "_score": null, 
    "_source": { 
    "message": "172.16.120.108 - - [14/Apr/2016:12:54:24 -0500] \"GET /center-unit-service/find-by-building/LWWSESSID/vdglqit5hod3m7sqvechjbrnn4?building=142 HTTP/1.1\" 200 119 \"https://lwhwms-dev7.corp.good-sam.com/participant-form/new/LWWSESSID/vdglqit5hod3m7sqvechjbrnn4\" \"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36\" 0.239 \"lwhwms-dev7.corp.good-sam.com\"", 
    "clientip": "172.16.120.108", 
    "ident": "-", 
    "auth": "-", 
    "verb": "GET", 
    "request": "/center-unit-service/find-by-building/LWWSESSID/vdglqit5hod3m7sqvechjbrnn4?building=142", 
    "httpversion": "1.1", 
    "response": "200", 
    "bytes": 119, 
    "referer": "https://lwhwms-dev7.corp.good-sam.com/participant-form/new/LWWSESSID/vdglqit5hod3m7sqvechjbrnn4", 
    "agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36", 
    "response_time": 0.239, 
    "server_name": "lwhwms-dev7.corp.good-sam.com", 
    "env": "dev7", 
    "host": "moses-web1-dev", 
    "type": "nginx-access", 
    "source": "/var/log/nginx/lwhwms-access.log", 
    "timestamp": "2016-04-14T12:54:24.000-0500", 
    "parsestamp": "2016-04-14T12:54:27.965-0500", 
    "application": "lwhwms", 
    "@version": "1", 
    "@timestamp": "2016-04-14T17:54:24.000Z", 
    "geoip": { 
     "ip": "172.16.120.108", 
     "country_code2": "US", 
     "country_code3": "USA", 
     "country_name": "United States", 
     "continent_code": "NA", 
     "city_name": "0010 - National Campus", 
     "postal_code": "57117", 
     "latitude": 43.50120000000001, 
     "longitude": -96.786, 
     "dma_code": 0, 
     "area_code": 0, 
     "location": [ 
     -96.786, 
     43.50120000000001 
     ] 
    }, 
    "ua": { 
     "name": "Chrome", 
     "os": "Windows 7", 
     "os_name": "Windows 7", 
     "device": "Other", 
     "major": "49", 
     "minor": "0", 
     "patch": "2623" 
    }, 
    "referrer": null 
    }, 
    "sort": [ 
    1460656464000, 
    1460656464000 
    ] 
} 

は、任意の助けを事前にありがとうございます。

私の最終的な答えは次のようになりました。返信いただいた皆様にもありがとうございました。これがELKの世界への新しい初心者に役立つことを願っています。

{ 
    "template_1" : { 
    "template" : "*", 
    "mappings" : { 
     "_default_" : { 
     "dynamic_templates" : [ 
      { 
      "geoip-location" : { 
       "path_match" : "geoip.location", 
       "mapping" : { 
       "type" : "geo_point" 
       } 
      } 
      }, 
      { 
      "geoip-ip" : { 
       "path_match" : "geoip.ip", 
       "mapping" : { 
       "type" : "string", 
       "norms" : { "enabled" : false } 
       } 
      } 
      }, 
      { 
      "level-string" : { 
       "match" : "level", 
       "mapping" : { 
       "type" : "string", 
       "norms" : { "enabled" : false } 
       } 
      } 
      }, 
      { 
      "line-string" : { 
       "match" : "line", 
       "mapping" : { 
       "type" : "string", 
       "norms" : { "enabled" : false } 
       } 
      } 
      } 
     ] 
     } 
    } 
    } 
} 
+0

の名前に_ default_を変更することができます。私の目標は2.3.1にアップグレードできるように文書を再索引付けすることです。 –

+0

インデックスを作成するサンプル文書を表示できますか? – Val

+0

@Val - 例を追加しました。 –

答えて

1

ダイナミックテンプレートを使用できますか?

{ 
    "mappings":{ 
     "_default_":{ 
     "dynamic_templates":[ 
      { 
       "geoip":{ 
        "path_match":"geoip.location", 
        "mapping":{ 
        "type":"geo_point" 
        } 
       } 
      } 
     ] 
     } 
    } 
} 

あなたはまた、これはelasticsearch 1.7を使用しているあなたのインデックス

+0

私はすべての単一のドキュメントのための動的テンプレートを作成することを避けたいと思います。私はあなたが持っているものを私のdefault-mappings.jsonに追加しようとしましたが、うまくいきませんでした。 –

+0

わかりましたので、ダイナミックテンプレートの仕組みを正確に理解できませんでした。これまでのところ、これは私のために働いているようです。答えてくれてありがとう!!! –

関連する問題