[ 
https://issues.apache.org/jira/browse/LUCENE-4883?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13613730#comment-13613730
 ] 

Robert Muir commented on LUCENE-4883:
-------------------------------------

I've been thinking about this in a lot of detail over the last few months, so I 
have a few more ideas (i'm not sure if this is all really the best/easiest 
path):

Currently FC "uses" the docvalues apis, but violates them in a couple of ways. 
I was trying to think of ways we could do this long term that would give us a 
filterreader that would also pass checkindex. If we can do this, its nice as 
someone could call IndexWriter.addIndexes(ir) and "upgrade" from fieldcache to 
docvalues. But unfortunately I think its a good deal of work and not easy to do 
immediately.

Anyway I think these are the three trickiest parts:

# How can we make the FilterReader's fieldinfos consistent with the docvalues 
types? I think it needs to take this information up-front: a mapping of field 
names from the underlying fieldinfos to docvalues types. Note that this would 
also make fieldcache "type insanity" impossible. It also allows a possibility 
for someone to easily control which fields are allowed to have fieldcaches 
built for them.
# How can we prevent non-dense ordinals (e.g. the case where someone "sorts on 
a multivalued field"). In this case today lucene happily allows it, but with a 
typed-no-insanity-filterreader i think we should throw an exception in this 
case instead. It means someone specified the incorrect docvalues type for the 
field (should have been SORTED_SET). Also in the filterreader's ctor, we can 
try to use underlying statistics on the field to detect if any fields are 
actually multivalued up front and throw exception early.
# How can we expose "missing" for NumericDocValues. One idea is just to see 
this "bitset" as another NumericDocValues field (that only has values of 0 or 
1) and provide sugar in the API that makes this happen automatically. I think 
actually for SortedDocValues we should try to move things to the same thing 
long-term (instead of returning -1).

                
> Hide FieldCache behind an UninvertingFilterReader
> -------------------------------------------------
>
>                 Key: LUCENE-4883
>                 URL: https://issues.apache.org/jira/browse/LUCENE-4883
>             Project: Lucene - Core
>          Issue Type: Improvement
>            Reporter: Alan Woodward
>            Assignee: Alan Woodward
>            Priority: Minor
>         Attachments: LUCENE-4883.patch
>
>
> From a discussion on the mailing list:
> {{
> rmuir:
> I think instead FieldCache should actually be completely package
> private and hidden behind a UninvertingFilterReader and accessible via
> the existing AtomicReader docValues methods.
> }}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to