[ https://issues.apache.org/jira/browse/LUCENE-8489?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16609435#comment-16609435 ]
Namgyu Kim commented on LUCENE-8489: ------------------------------------ Hi, [~jpountz] and [~dsmiley]. Thank you for your reply. Dear [~jpountz] : I thought it was okay to give the user more choices. However, if this makes it rather confusing or difficult to control, maintaining the status looks better. :D Dear [~dsmiley] : I don't care, but I thought it would be convenient if there were various APIs from the user's point of view. In fact, JAVA's "list-to-array" and "array-to-list" are not so difficult. As Adrien said, this operation can cause some confusion in the API. If most users do not use low-level features, I think maintaining the status is better. :D > Provide List type constructors for BaseCompositeReader based Readers > -------------------------------------------------------------------- > > Key: LUCENE-8489 > URL: https://issues.apache.org/jira/browse/LUCENE-8489 > Project: Lucene - Core > Issue Type: Improvement > Components: core/index > Reporter: Namgyu Kim > Priority: Major > Labels: usability > Attachments: LUCENE-8489.patch > > > Currently, Reader based on BaseCompositeReader(MultiReader, > ParallelCompositeReader, DirectoryReader) does not support List type > constructor. > In fact, this does not make a big difference in performance, but users will > think positively if the API supports more variants. > I will add the following to support this. > 1) MultiReader > {code:java} > public MultiReader(List<IndexReader> subReaders) throws IOException { > this(subReaders, true); > } > public MultiReader(List<IndexReader> subReaders, boolean closeSubReaders) > throws IOException { > this(subReaders.toArray(new IndexReader[0]), closeSubReaders); > } > {code} > 2) ParallelCompositeReader > {code:java} > public ParallelCompositeReader(List<CompositeReader> readers) throws > IOException { > this(true, readers); > } > public ParallelCompositeReader(boolean closeSubReaders, List<CompositeReader> > readers) throws IOException { > this(closeSubReaders, readers, readers); > } > public ParallelCompositeReader(boolean closeSubReaders, List<CompositeReader> > readers, List<CompositeReader> storedFieldReaders) throws IOException { > this(closeSubReaders, readers.toArray(new CompositeReader[0]), > storedFieldReaders.toArray(new CompositeReader[0])); > } > {code} > 3) DirectoryReader > {code:java} > protected DirectoryReader(Directory directory, List<LeafReader> > segmentReaders) throws IOException { > super(segmentReaders); > this.directory = directory; > } > {code} > 4) BaseCompositeReader > {code:java} > @SuppressWarnings("unchecked") > protected BaseCompositeReader(List<R> subReaders) throws IOException { > this(subReaders.toArray((R[]) new IndexReader[subReaders.size()])); > } > {code} > 5) Test > I wrote a test case in "TestParallelCompositeReader". > If you have any questions or requests, please left any comments :D -- This message was sent by Atlassian JIRA (v7.6.3#76005) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org