2016-03-25 10 views
1

Ich habe eine Indexvorlage erstellt und sie in meinen lokalen elasticsearch Store eingefügt. Verwenden Sie den folgenden Befehl:Elasticsearch Vorlage erstellt keinen neuen Index in elasticsearch 1.7

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

Ich habe Elasticsearch-Kopf installiert und kann die Info> Vorlagen gehen und sehen, dass meine Vorlage tatsächlich erstellt wurde. Ich bin unter der Annahme, dass, sobald ich eine Vorlage habe, kann ich in jeden Index mit einem Namen einfügen, der in die Regex media_ * passt, auch wenn dieser Index noch nicht existiert. Ich möchte Indizes mithilfe der Indexvorlage automatisch erstellen können. Wenn ich versuche, einen Datensatz in einen Index einzufügen, der noch nicht erstellt wurde, aber eine gültige Regex von media_ * ist, erhalte ich einen Fehler. Unten ist die Insert-Anweisung, die ich anrufe und danach ist der Fehler.

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

Fehler:

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

Was mache ich falsch? Missverstehe ich Indexvorlagen? Sollten sie in der Lage sein, den Index automatisch zu erstellen, wenn dieser nicht vorhanden ist und die Vorlagenspezifikation erfüllt?

Ich bin mit Elasticsearch 1.7

Antwort

1

müssen Sie angeben, welche Art Sie Ihre Zuordnung und was ist die Art des Dokuments anwenden, wenn Sie es schaffen.

Versuchen Sie folgendes:

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

diese dann Ihr Dokument zu erstellen:

$ curl -XPOST 'http://localhost:9200/media_2016_03_25/my-document-type/1' -d ' 
{ 
    "media-type" : "audio" 
} 
' 
Verwandte Themen