ich habe ein bestimmtes Dokument:Mapping für Objekte mit einer beliebigen Menge von Eigenschaften in Elasticsearch
{
"foo": {}
}
foo
wo eine beliebige Anzahl von Eigenschaften haben kann. Nehmen wir an, ich importiere Millionen von Dokumenten in meinen Index, in denen jede der Eigenschaften von foo
andere Werte hat.
das bedeutet meine Mapping, die dynamisch gebaut wird, wird enorm wachsen. gibt es jede Art von Art und Weise, wo ich Elasticsearch so etwas wie
nehmen alles, was Sie haben in
foo
und akzeptieren es so wie es ist (oder stringifyfoo
), ohne dass ein resultierendes Millionen-Linien-Mapping kann sagen ???
oder muss ich mich vor der Indizierung von Dokumenten selbst kümmern?
wenn ja, gibt es ein 2-Lösungen denken i
JSON.stringify
foo
Karte jede Eigenschaft in
foo
in Schlüssel/Wert-Paare, und ein Array von Objekten erstellen:// object { "foo": [ {"key": "bar1", "value": "bar1's value"}, {"key": "bar2", "value": "bar2's value"} ] } // resulting mapping { "type": { "properties": { "foo": { "properties": { "key": { "type": "string" }, "value": { "type": "string" } } } } } }
würden Sie dann Lösung 1 o bevorzugen r 2, und warum?
schätze deine Hilfe!
danke für deine antwort. Wie ignoriere ich es? Wenn ich das tue, kann ich nicht in diesem Feld suchen, aber es wird immer noch Teil des Dokuments sein, wenn ich dieses Recht erhalte? – hereandnow78
es gefunden: {"enabled": "false", "type": "object"}, trotzdem, vielen Dank für Ihre Hilfe! – hereandnow78