[ https://issues.apache.org/jira/browse/LUCENE-831?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12698258#action_12698258 ]
Michael McCandless commented on LUCENE-831: ------------------------------------------- This issue is fast moving! Here're some thoughts on the last patch: * Need to pass in ValueSource impl to IndexReader.open, defaulting to Cached(Uninverted) * Maybe ValueSource should provide default "throws UOE" exceptions methods (instead of abstract) since it's rather cumbersome for a subclass that only intends to provide eg getInts(). * Should CachingValueSource really include IndexReader in its key? I think it shouldn't? The cache is already "scoped" to a reader because each SegmentReader will have its own instance. Also, one might cache ValueSources that don't "have" a reader (eg pull from a DB or custom file format or something). Cloning an SR for now should just copy over the same cache. * I think we should back deprecated FieldCache with ValueSource for the reader; one simple way to not ignore the Parser passed in is to anonymously subclass Uninverter and invoke the passed in ByteParser from its "newTerm" method? * Why do we need to define StringInverter, IntInverter, etc in UninversionValueSource? Couldn't someone instead subclass UninversionValueSource, and override whichever getXXX's they want using their own anonymous uninverter subclass? * Should we deprecate function.FieldCacheSource, and make a new function.ReaderValueSource (ie pulls its values from the IndexReader's ValueSource)? > Complete overhaul of FieldCache API/Implementation > -------------------------------------------------- > > Key: LUCENE-831 > URL: https://issues.apache.org/jira/browse/LUCENE-831 > Project: Lucene - Java > Issue Type: Improvement > Components: Search > Reporter: Hoss Man > Assignee: Mark Miller > Fix For: 3.0 > > Attachments: ExtendedDocument.java, fieldcache-overhaul.032208.diff, > fieldcache-overhaul.diff, fieldcache-overhaul.diff, > LUCENE-831.03.28.2008.diff, LUCENE-831.03.30.2008.diff, > LUCENE-831.03.31.2008.diff, LUCENE-831.patch, LUCENE-831.patch, > LUCENE-831.patch, LUCENE-831.patch, LUCENE-831.patch, LUCENE-831.patch, > LUCENE-831.patch, LUCENE-831.patch, LUCENE-831.patch > > > Motivation: > 1) Complete overhaul the API/implementation of "FieldCache" type things... > a) eliminate global static map keyed on IndexReader (thus > eliminating synch block between completley independent IndexReaders) > b) allow more customization of cache management (ie: use > expiration/replacement strategies, disk backed caches, etc) > c) allow people to define custom cache data logic (ie: custom > parsers, complex datatypes, etc... anything tied to a reader) > d) allow people to inspect what's in a cache (list of CacheKeys) for > an IndexReader so a new IndexReader can be likewise warmed. > e) Lend support for smarter cache management if/when > IndexReader.reopen is added (merging of cached data from subReaders). > 2) Provide backwards compatibility to support existing FieldCache API with > the new implementation, so there is no redundent caching as client code > migrades to new API. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online. --------------------------------------------------------------------- To unsubscribe, e-mail: java-dev-unsubscr...@lucene.apache.org For additional commands, e-mail: java-dev-h...@lucene.apache.org