[
https://issues.apache.org/jira/browse/LUCENE-3084?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Uwe Schindler updated LUCENE-3084:
----------------------------------
Attachment: LUCENE-3084-trunk-only.patch
Different patch idea:
- OneMerge clones the list, so all MergePolicys don't need to take care, that
the list may change later (e.g. is it's based on SegmentInfos.subList() which
changes later during merge)
- Removed SIs.range() completely
{quote}
* Speaking logically, merges operate on Sets of SIs, not List?
* Let's stop subclassing random things? : ) SIS can contain a List of SIs (and
maybe a Set, or whatever we need in the future), and only expose operations its
clients really need.
{quote}
Merges are ordered, so it must be an ordered Set like LinkedHashSet.
SegmentInfos itsself must be list, as the segments of an index are ordered.
All tests pass with this patch.
The cloning should also be moved to OneMerge in 3.x. range() should simply
delegate to subList (and no longer clone).
> MergePolicy.OneMerge.segments should be List<SegmentInfo> not SegmentInfos
> --------------------------------------------------------------------------
>
> Key: LUCENE-3084
> URL: https://issues.apache.org/jira/browse/LUCENE-3084
> Project: Lucene - Java
> Issue Type: Improvement
> Reporter: Michael McCandless
> Assignee: Michael McCandless
> Priority: Minor
> Fix For: 3.2, 4.0
>
> Attachments: LUCENE-3084-trunk-only.patch,
> LUCENE-3084-trunk-only.patch, LUCENE-3084.patch
>
>
> SegmentInfos carries a bunch of fields beyond the list of SI, but for merging
> purposes these fields are unused.
> We should cutover to List<SI> instead.
--
This message is automatically generated by JIRA.
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]