Hallo Elasticsearch Gurus da draußen.Elasticsearch Mapping und Feldtyp
der folgende Index und Doctype Gegeben: localhost: 9200/MyIndex/mydoctype
Im Moment habe ich diesen Index Definition:
{
"myindex": {
"aliases": {},
"mappings": {
"mydoctype": {
"properties": {
"theNumber": {
"type": "integer"
},
"theString": {
"type": "string"
}
}
}
},
"settings": {
"index": {
"creation_date": "1487158714808",
"number_of_shards": "5",
"number_of_replicas": "1",
"version": {
"created": "1070599"
},
"uuid": "cm2OtivhTO-RjuZPeHvL1w"
}
},
"warmers": {}
}
}
Und ich war in der Lage, dieses Dokument hinzuzufügen:
{
"theNumber" : 0,
"theString" : "zero"
}
Aber was ich nicht erwartet hatte, ist, dass ich dieses Dokument hinzuzufügen, auch in der Lage:
{
"theNumber" : 3.1418,
"theString" : 3,
"fiefoe" : "fiefoe"
}
... wo die Feldtypen nicht übereinstimmt. Ebenso wird ein neues Feld/Spalte eingeführt. Ich habe dieses Verhalten wegen der Mappings, die ich für meinen Index definiert habe, nicht erwartet.
Hat dies etwas damit zu tun, dass Elasticsearch schemalos ist? Ist es möglich, Elasticsearch so einzustellen, dass nur solche Typen und Felder für jedes Dokument akzeptiert werden, das für diesen Index hinzugefügt wurde? Funktioniert das ElasticSearch Mapping überhaupt? (Vielleicht habe ich weiß nicht, hehehe)
Dank =)
vielen dank @christinabo. Das ist sehr hilfreich. –
@ArtanisZeratul Ich hoffe, dass es so geklappt hat. – christinabo
bitte überprüfen Sie meine Antwort unten, es könnte auch für Sie hilfreich sein. Vielen Dank. –