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

Reply via email to