2017-06-08 4 views
2

x packで新しいマシン学習モジュールを試しています。私は時々HTTPアクセスログでまれな応答コードを識別しようとしています。私のログは以下のようにelasticsearchに格納されている:マシン学習(ベータ版)モジュールでオブジェクトマッピング以外のオブジェクトマッピングをマージできません

{ 
    "_index": "logstash-2017.05.18", 
    "_type": "Accesslog", 
    "_id": "AVxvVfFGdMmRr-0X-J5P", 
    "_version": 1, 
    "_score": null, 
    "_source": { 
    "request": "/web/Q123/images/buttons/asdf.gif", 
    "server": "91", 
    "auth": "-", 
    "ident": "-", 
    "verb": "GET", 
    "type": "Accesslog", 
    "path": "/path/to/log", 
    "@timestamp": "2017-05-18T10:20:00.000Z", 
    "response": "304", 
    "clientip": "1.1.1.1", 
    "@version": "1", 
    "host": "ip-10-10-10-10", 
    "httpversion": "1.1", 
    "timestamp": "18/May/2017:10:20:00 +0530" 
    }, 
    "fields": { 
    "@timestamp": [ 
     1495102800000 
    ] 
    } 

私は「珍しい」と応答 『「』としてby_field_nameとしての機能を選択した検出器を追加しました。しかし仕事を保存すると、次のエラーが表示されます。

Save failed: [illegal_argument_exception] Can't merge a non object mapping [response] with an object mapping [response] 

助けてください。

+0

解決策を見つけましたか? –

+1

こんにちは...見つけました...専用のインデックスを使用する必要があります...詳細な回答はこちらhttps://discuss.elastic.co/t/can-t-merge-a-non-object-mapping-with - オブジェクト指向エラー - 機械学習 - ベータモジュール/ 93497/2 –

答えて

0

エラーメッセージは、既存のマッピングを変更しようとしていることを意味します。しかし、これはElasticsearchでは不可能です。マッピングが作成されると、変更することはできません。

As explained by Shay Banon himself

You can't change existing mapping type, you need to create a new index with the correct mapping and index the data again.

ですから、このマッピングを作成するための新しいインデックスを作成する必要があります。状況に応じて、あなたはどちらか

  • は、追加のインデックスを作成、または
  • は、現在のインデックスを削除し、最初からそれを再作成します。

もちろん、後者の場合、インデックス内のすべてのデータが失われますので、それに応じて準備してください。

関連する問題