[ 
https://issues.apache.org/jira/browse/LUCENE-7875?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

David Smiley updated LUCENE-7875:
---------------------------------
         Priority: Minor  (was: Major)
    Fix Version/s: master (8.0)

Here's the patch.  It's pretty big because there are many callers, most are in 
test methods.
* New MultiLeafReader (static utility class) now has getLiveDocs, 
getMergedFieldInfos, and getIndexedFields.
* MultiTerms now has getTerms, getTermDocsEnum, getTermPositionsEnum

[~romseygeek] Perhaps we can consider removing and/or renaming getTermDocsEnum 
and getTermPositionsEnum which are basically the same thing.  I recall you were 
involved in some related refactorings.  It could be in a separate issue or this 
one.

In a separate issue, I'll be able to move MultiFields with MappedMultiFields 
into the o.a.l.codecs package and make package-private.  If the two together 
were in the codecs package, they could be hidden.

An alternative to introducing MultiLeafReader would be to move 
getMergedFieldInfos & getIndexedFields (maybe changing that latter one a bit to 
be more generic with a predicate), and then move getLiveDocs to MultiBits but 
would need to make it public.  Shrug; I have no strong opinion.

> Rename or move most of MultiFields
> ----------------------------------
>
>                 Key: LUCENE-7875
>                 URL: https://issues.apache.org/jira/browse/LUCENE-7875
>             Project: Lucene - Core
>          Issue Type: Improvement
>            Reporter: David Smiley
>            Assignee: David Smiley
>            Priority: Minor
>             Fix For: master (8.0)
>
>         Attachments: LUCENE-7875.patch
>
>
> MultiFields.java has a bunch of static methods that provide a single 
> LeafReader's view over a bunch of things.
> These could perhaps go to ReaderUtil:
> * {{Bits getLiveDocs(IndexReader reader)}}
> * {{FieldInfos getMergedFieldInfos(IndexReader reader)}} (removing "Merged" 
> in its name which seems inconsistent, or replace with "Multi")
> These could perhaps go to MultiTerms:
> * {{Collection<String> getIndexedFields(IndexReader reader)}}
> * {{Terms getTerms(IndexReader r, String field)}}
> * {{PostingsEnum getTermDocsEnum(IndexReader r, String field, BytesRef term)}}
> Finally, the MultiFields instance itself, implementing {{Fields}} along with 
> the static utility method {{Fields getFields(IndexReader reader)}} could 
> perhaps remain until we can finally remove it (or move to a test classpath or 
> something) when there is no more purpose for Fields.java.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

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

Reply via email to