Rather then use the FieldCache, you may consider a WeakHashMap<IndexReader,YourObject> solr uses this and the internals of FieldCache are implemented like this. Long term, I want to see the FieldCache moved to a map directly on the IndexReader (LUCENE-2665 but that has a ways to go)
On Fri, Mar 11, 2011 at 5:25 PM, Smiley, David W. <dsmi...@mitre.org> wrote: > On Mar 10, 2011, at 6:21 PM, William Bell wrote: > >> 1. ValueSources does not support MultiValue fields. > > I think the problem isn't ValueSources, it's the FieldCache. The FieldCache > is fundamentally very limited to one indexed primitive value per document. I > took a look at UninvertedField but that appears to be tied to faceting and > it's not sufficiently flexible any way. I think I need to do, as > UninvertedField does, create a cache registered in solrconfig.xml. The other > tricky bit is somehow accessing it. I think I figured it out. In my field > type's getValueSource(SchemaField field, QParser parser), the parser is a > FunctionQParser implementation, which has access to SolrQueryRequest, which > has access to SolrIndexSearcher, which allows me to lookup the cache by the > name I choose. That's quite a chain of indirection that took time to track > down; I nearly gave up :-). > > ~ David > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org > For additional commands, e-mail: dev-h...@lucene.apache.org > > --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org