You probably want to use parent/child instead, that way you don't have to update the entire document each time, just the child(ren).
PS - We're moving to https://discuss.elastic.co/, please join us there for any future discussions! On 15 May 2015 at 22:52, Peter Hodgman <peter.hodg...@gmail.com> wrote: > Hello, > > I have a situation where I want to understand the best way to model this > data in ES. I have the following data > > Object -> Has Many -> Properties > > where a > > Property -> is a -> Name (String), and a Value( one of -> Boolean, > Integer, Double, String, Long) > > and the Object is the container of the properties via the "the-properties" > field below. It also has a simple name field "the-name" as a general object > identifier. > > > So essentially I have an object that has many properties where each > property can have a name, and a value but the value can be one of many > types as noted above. So this is a bit dynamic in nature as it relates to > the properties value "type". > > One way to establish a mapping is as follows, but it seems a bit hacky. Is > there a better way? > > curl -XPUT 'http://localhost:9200/bo-objects/_mapping/bo' -d '{ > "bo": { > "properties": { > "the-name" : { > "type" : "string", > "store" : true > }, > "the-properties": { > "type" : "nested", > "properties" : { > "name" : { > "type" : "string", > "store" : true > }, > "value" : { > "type" : "object", > "properties" : { > "as_double" : { "type": "double", "store": true} , > "as_int" : { "type": "integer", "store": true} , > "as_string" : { "type": "string", "store": true} , > "as_bool" : { "type": "boolean", "store": true} > } > } > } > } > } > } > }' > > which results in an ES data structure like this.. > > > - "_source": { > - "name": "My Object", > - "properties": [ > - { > - "name": "foo", > - "value": { > - "as_double": 23.56 > } > }, > - { > - "name": "bar", > - "value": { > - "as_bool": false > } > }, > - { > - "name": "bla", > - "value": { > - "as_double": 22.56 > } > }, > - { > - "name": "junk", > - "value": { > - "as_double": 8.56 > } > }, > - { > - "name": "fee", > - "value": { > - "as_string": "D6677" > } > } > ] > } > > } > > Thanks > > -- > Please update your bookmarks! We have moved to https://discuss.elastic.co/ > --- > You received this message because you are subscribed to the Google Groups > "elasticsearch" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to elasticsearch+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/elasticsearch/6fdbfe26-4032-4664-91ce-582a0d832bf4%40googlegroups.com > <https://groups.google.com/d/msgid/elasticsearch/6fdbfe26-4032-4664-91ce-582a0d832bf4%40googlegroups.com?utm_medium=email&utm_source=footer> > . > For more options, visit https://groups.google.com/d/optout. > -- Please update your bookmarks! We have moved to https://discuss.elastic.co/ --- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to elasticsearch+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/CAEYi1X_sGhLc%2BxtdbmzAUWDAPOByNBZHSSy%3DiFUS4fne0Vc_%2Bg%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.