On Sat, Oct 09, 2010 at 06:31:19PM -0400, Erick Erickson said: > I'm confused. What do you mean that a user can "set any > number of arbitrarily named fields on a document". It sounds > like you are talking about a user adding arbitrarily may entries > to a multi-valued field? Or is it some kind of key:value pairs > in a field in your schema?
Users can add arbitary key/values to documents. Kind of like Machine Tags. So whilst a document has some standard fields (e.g title="My Random Document", user="Simon", date="2010-10-11") I might have added current_temp_in_c="32" to one of my documents but you might have put time_taken_to_write_in_mins="30". We currently don't index these fields but we'd like to and be able to have users sort on them. Ideas I had: - Everytime a user adds a new field (e.g time_taken_to_write_in_mins) update the global schema But that would be horrible and would create an index with many thousands of fields. - Give each user their own core and update each individual schema Better but still inelegant The multi valued field idea occurred to me because I could have, for example user_field: [time_taken_to_write_in_mins=30, current_temp_in_c=32] (i.e flatten the key/value) I could then maybe write something that allowed sorting only on matched values of multi-value field. sort=user_field:time_taken_to_write_in_mins=* or fq=user_field:time_taken_to_write_in_mins=*&sort=user_field It was just an idea though and I was hoping that there would be a simpler more orthodox way of doing it. thanks, Simon