[
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: [email protected]
For additional commands, e-mail: [email protected]