2016-06-29 5 views
0

私はElasticsearchを初めて使用していて、独特の問題があります:私はキバナ付きelasticsearchを使用してアプリケーションのほとんどのイベントを保存し、例では、123のuser_idを持つユーザのログインを格納するために、私はユーザー/ログイン/データとして次の配列を持つ123インデックスに記述します。Elasticsearchはインデックス内のソースデータにランダムな文字列を追加します

{ 
    "details" : { 
     "fname" : "John", 
     "lname" : "Smith", 
     "click" : "login-button", 
     etc... 
    }, 
    "ip_address" : 127.0.0.1, 
    "browser_type" : "Chrome", 
    "browser_version" : "17" 
} 

私が遭遇した問題は、一部のレコードが現れるということですが"詳細"配列の後にランダムな文字列をつけてください:screenshotを参照してください。誰かが私が間違っていることを提案することができますか、既存のインデックスをどのように修正できますか?

Screenshot

答えて

0

私はあなたのデータにこのような何かを持ってすべきだと思う:

{ 
    "details" : { 
     "28d211adbf" : { 
      "stats" : { 
      "merge_field_count": 6, 
      "unsubscribe_count_since_send": 3 
      } 
     }, 
     "555cd3bcba" : { 
      "stats" : { 
      "merge_field_count": 6, 
      "unsubscribe_count_since_send": 3 
      } 
     } 
    }, 
    "ip_address" : 127.0.0.1, 
    "browser_type" : "Chrome", 
    "browser_version" : "17" 
} 

それが実際にelasticsearchでインデックス文書の良い習慣ではありません。これについての詳細はマッピングの爆発について 読む: https://www.elastic.co/blog/found-crash-elasticsearch#mapping-explosion

+0

おかげでフィリップが、私のデータ**(詳細は、メインアプリから構造化されたオブジェクトである)私が説明するように**です。私はそれらのランダムな文字列がどこから来ているのか理解していません...私は28d211adbfインデックスを持つことを望んでいません。だから私は彼らがどこから来ているのか聞いています...重複を軽減するためにそれらを追加するelasticsearchですか? – unicopter

+0

私は問題がメインアプリケーションのオブジェクト表現にあると思います。メインアプリケーションでオブジェクトをどのように表現していますか?ランダムな文字列はハッシュキーのように見えます。主なアプリで構造化オブジェクトにhashmapなどを使用していますか? – philipskokoh

関連する問題