Got it, thanks Uwe!

2017-09-29 1:39 GMT+08:00 Uwe Schindler <u...@thetaphi.de>:

> Hi,
>
> Use another merge policy, see LogMergePolicy subclasses! Those preserve
> order, but are not merging in ideal ways.
>
> In general: Relying on internal Lucene DocIDs is not guaranteed to work,
> this is only an implementation detail. The internal IDs are also not
> stable!!!
>
> Uwe
>
> -----
> Uwe Schindler
> Achterdiek 19, D-28357 Bremen
> http://www.thetaphi.de
> eMail: u...@thetaphi.de
>
> > -----Original Message-----
> > From: Yonghui Zhao [mailto:zhaoyong...@gmail.com]
> > Sent: Thursday, September 28, 2017 2:50 PM
> > To: java-user@lucene.apache.org
> > Subject: TieredMergePolicy disrupts doc id order after merge
> >
> > Hi,
> >
> > It is easier to elaborate my question  with an example.
> >
> > My lucene version is 4.10.4
> >
> > I use
> >
> > SortField sortField =  new SortField(null, SortField.Type.DOC, true);
> > sort = new Sort(sortField);
> > return new SortingMergePolicy(new TieredMergePolicy(), sort);
> >
> >
> > to make sure my index merger will make fresh documents in the beginning
> of
> > merged segment.
> >
> > TieredMergePolicy will chose biggest segments to merge, so the merge
> order
> > should be size descending order.
> >
> > Say we have 2 segments, segment 0 size is smaller than segment 1, after
> > size sorting merge readers are (segment 1, segment 0),   after merge all
> > docs in segment 1 are  in front of segment 0.
> >
> > This doesn't satisfy my requirement.
> >
> > If merge readers will be restored to origin order after TieredMergePolicy
> > findMerges, then this problem will be fixed.
> >
> > Any problem of this solution?
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org
> For additional commands, e-mail: java-user-h...@lucene.apache.org
>
>

Reply via email to