So I'm not an expert in the Solr JSON update message, never used it
before myself. It's documented here:
http://wiki.apache.org/solr/UpdateJSON
But Solr is not a structured data store like mongodb or something; you
can send it an update command in JSON as a convenience, but don't let
that make you think it can store arbitrarily nested structured data like
mongodb or couchdb or something.
Solr has a single flat list of indexes, as well as stored fields which
are also a single flat list per-document. You can format your update
message as JSON in Solr 3.x, but you still can't tell it to do something
it's incapable of. If a field is multi-valued, according to the
documentation, the json value can be an array of values. But if the JSON
value is a hash... there's nothing Solr can do with this, it's not how
solr works.
It looks from the documentation that the value can sometimes be a hash
when you're communicating other meta-data to Solr, like field boosts:
"my_boosted_field": { /* use a map with boost/value for a
boosted field */
"boost": 2.3,
"value": "test"
},
But you can't just give it arbitrary JSON, you have to give it JSON of
the sort it expects. Which does not include arbitrarily nested data hashes.
Jonathan