2016-03-25 17 views
1

私はインデックステンプレートを作成し、それを私のローカルelasticsearchストアに挿入しました。次のコマンドを使用:elasticsearchテンプレートがelasticsearchで新しいインデックスを作成していません1.7

curl -XPUT localhost:9200/_template/media_template -d ' 
 
{ 
 
    "template" : "media_*", 
 
    "mappings" : { 
 
     "properties": { 
 
      "media-type": { 
 
       "type": "string" 
 
      } 
 
     } 
 
    } 
 
}
私はElasticsearch-頭をインストールしているとInfo>テンプレートに行き、私のテンプレートが実際に作成されたことを確認でき

。私はテンプレートを持っていれば、そのインデックスがまだ存在しなくても、のmedia_ *の正規表現に収まる名前のインデックスに挿入できます。インデックステンプレートを使用してインデックスを自動作成できるようにしたい。

まだ作成されていないが有効な正規表現media_ *のインデックスにレコードを挿入しようとすると、エラーが発生します。以下は私が呼び出すinsert文です。それ以降はエラーです。

$ curl -XPOST 'http://localhost:9200/media_2016_03_25/1' -d ' 
 
{ 
 
    \t "media-type" : "audio" 
 
} 
 
'

エラー:

{ 
 
    "error": "MapperParsingException[mapping [properties]]; nested: MapperParsingException[Root type mapping not empty after parsing! Remaining fields: [media-type : {type=string}]]; ", 
 
    "status": 400 
 
}

私が間違って何をしているのですか?インデックステンプレートを誤解していますか?インデックスが存在しない場合にインデックスを自動作成でき、テンプレート仕様に準拠している必要がありますか?私が実行しています

elasticsearch 1.7

答えて

1

あなたはあなたにマッピングを適用している入力し、あなたがそれを作成しているドキュメントの種類何を指定する必要があります。

この試してみてください。そして、これはあなたの文書を作成するために

curl -XPUT localhost:9200/_template/media_template -d ' 
{ 
    "template" : "media_*", 
    "mappings" : { 
     "my-document-type" : { 
      "properties": { 
       "media-type": { 
        "type": "string" 
       } 
      } 
     } 
    } 
} 

を:

$ curl -XPOST 'http://localhost:9200/media_2016_03_25/my-document-type/1' -d ' 
{ 
    "media-type" : "audio" 
} 
' 
関連する問題