[
https://issues.apache.org/jira/browse/SOLR-1508?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12765288#action_12765288
]
Tom Hill commented on SOLR-1508:
--------------------------------
Starting with the hard part makes some sense, not sure if we should continue
that part here, or in SOLR-1298.
Comments on "things to think about"
1 & 2) I think this (SOLR-1508) would work as one implementation of a mechanism
to get things other than 'normal' fields (cache, function queries). It makes
sense for there to be an overall common interface for this.
3) a) In this implementation, the user configures an alternate name for the
field. (e.g. foobar_cached). If they ask for that, they get the cached version.
If they use the real name, they retrieve as usual. b) I think it would make
sense to allow the cache to be configurable to cache a stored field or an
indexed term, but I have not done this yet.
4) I can't comment on this one, as I haven't looked at uninvertedField.
5) For this use case, I think it makes sense for fl=* to get only the original
document. If you are getting any other fields, you have to go to the disk, so
the advantage of the cache will largely be lost. But I do think this also might
be a reasonable default for the other cases. That is, "Ask for it, if you want
something extra"
6) I don't have an answer on this one yet. I'm working with Strings right now.
And, as for this implementation, you are right, IndexSearcher does have start
information. I'd looked for accessors, I hadn't thought to look for other
places the same info was recreated.
And you could then call DirectoryReader.readerIndex(), passing in starts[]. But
the implementation of gatherSubreaders is recursive, and the implementation in
DirectoryReader is not, and I'm really not clear if that would matter. It just
seems a lot more stable to have each class do its own look offset calculations
and segment look-up.
Also, If you wanted to not have the caches baked into IndexReader's api, we
could make a method that returns the relevant reader and offset and then use
that to look up in the cache externally. It's a little more general, but a
little more code, so I initially went with the simpler approach.
> Use field cache when creating response, if available and configured.
> --------------------------------------------------------------------
>
> Key: SOLR-1508
> URL: https://issues.apache.org/jira/browse/SOLR-1508
> Project: Solr
> Issue Type: New Feature
> Components: search
> Affects Versions: 1.3
> Reporter: Tom Hill
>
> Allow the user to configure a field to be returned to the user from the field
> cache, instead of getting the field from disk. Relies on lucene-1981
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.