: The behavior I would like is identical to 'tagging' each document with the : list-id/user/order and then using standard faceting to show what lists : documents are in and what users have put the docs into a list. : : But - I would like the main index to be read only. The index needs to be : shared across many installations that should not have access to other users : data. : : Any thoughts on how this might be possible? Off hand, it seems like manually : filling an un-inverted field cache might be a place to start looking. Perhaps
the read only requirement makes this a particularly interesting problem ... off hand i think you're right about wanting to maintain the tags explicitly in an UnInvertedField -- but you'll still need some sort of persistent storage for that. you'll also need a way to filter docs by tag, which means maintaining an un-un-inverted index of the tags as well. if your index truely is 100% read only, then you can take advantage of the internal docIds, in your main index ... which will make it a lot easier to build your UnInvertedField and to build up a DocSet for filtering based on the results of a query to your tag index ... but i suspect what you really mean is "the index will be updated much less frequently then the tags, and it will be shared by multiple applications so i can't make any modifications to it as part of hte tagging system." .. which makes things harder. at the end of the day, the biggest deciding factor in picking a solution really comes down to the age old question: what turn arroundtime do you need between adding data (tags) and returning that data (facting/filtering) ? ... because if you're allowed a lot of lag, you have a lot more options. -Hoss