ids can also change as the result of an add(), not just optimize(). An add
can trigger a segment merge which can squeeze out deleted docs and thus
change the ids. I think everything else you said is pretty much correct.

On 10/6/05, Jack McBane <[EMAIL PROTECTED]> wrote:
>
> I know that in general if you optimize an index the document id that a
> HitCollector would see is not guarenteed to stay the same since any
> deleted
> documents would get removed from the index completely and all later
> documents pushed up to fill in the gaps. I'm wondering though, are the
> document ids are preserved accross an optimize if there were no deletions
> (which could be checked with a call to IndexReader.hasDeletions())?
>
> Similarly, if you populate an index using IndexWriter.addIndexes
> (Directory[])
> are the document ids preserved except with offsets added? That is, if you
> have two indices with 10 documents each (so that each has document ids
> 0-9)
> and combine them in this way, does document 0 in the new index correspond
> to
> document 0 in the Directory[0] index, ..., document[9] correspond to
> document 9 in Directory[0], document[10] correspond to document 0 in
> Directory[1],...,document[17] correspond to document 9 in Directory[1].
>
> I've been creating a prototype of something that for a first pass assumed
> that documents are preserved as described above, but some of my results
> are
> starting to look like that is not the case.
>
> Thanks.
>
>


--
-Yonik
Now hiring -- http://tinyurl.com/7m67g

Reply via email to