You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@lucene.apache.org by Rob Outar <ro...@ideorlando.org> on 2002/11/22 16:59:11 UTC

How does delete work?

Hello all,

	I used the delete(Term) method, then I looked at the index files, only one
file changed "_1tx.del"  I found references to the file still in some of the
index files, so my question is how does Lucene handle deletes?

Thanks,

Rob


--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>


Re: How does delete work?

Posted by Doug Cutting <cu...@lucene.com>.
Clemens Marschner wrote:
> So what if documents are deleted in the meantime? Then the recursive merge
> can't determine the X segments with the same size.

If you read my previous message you'll find the answer:

Doug Cutting wrote:
 > It's actually a little more complicated than that, since (among other
 > reasons) after docuuments are deleted a segment's size will no longer
 > be exactly a power of the mergeFactor.

If you want the gory details, look at IndexWriter.java.  Or just set 
IndexReader.infoStream to System.out, then add and delete documents and 
watch what happens.

Doug


--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>


Re: How does delete work?

Posted by Clemens Marschner <cm...@lanlab.de>.
So what if documents are deleted in the meantime? Then the recursive merge
can't determine the X segments with the same size.



--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>


Re: How does delete work?

Posted by Doug Cutting <cu...@lucene.com>.
No, in my example optimize() was never called.  The merge rule operates 
recursively.  So, after 99 documents had been added the segment stack 
contained nine indexes with ten documents and nine with one document. 
When the hundredth document was added, the nine one document segments 
were popped of the stack and merged into a single segment that was 
pushed onto the stack.  So then the top of the stack had ten segments 
each containing ten documents, i.e., mergeFactor segments of the same 
size, and these ten segments were then merged into a single segment of 
100 documents.  So adding the 100th document triggered two merges.

(One error in my previous example: the 100 document segment actually 
contains documents 0-99, not 0-100.)

A corollary of this is, when mergeFactor is 10 and no deletions have 
been made, the segments correspond to the digits in the decimal 
representation of the number of documents in the index.  So, an 85 
document index has eight segments with 10 documents and five segments 
with one documents.  (This is somewhat of a simplification, as Lucene 
automatically merges single document segments before ever writing them 
to disk as an optimization.)

It is most beneficial to call IndexWriter.optimize() only when you know 
you won't be adding documents to an index for a while, but will be 
searching it a lot.  Calling optimize() periodically while indexing 
mostly just slows things down.

Doug

Otis Gospodnetic wrote:
> I see, so every mergeFactor documents they are compined into a single
> new segment in the index, and only when optimize() is called do those
> multiple segments get merged into a single segment.
> In your example below that would mean that optimize() was called after
> document 100 was added, hence a single segment with documents 0-100.
> Is this right?
> 
> Thanks,
> Otis
> 
> --- Doug Cutting <cu...@lucene.com> wrote:
> 
>>Merging happens constantly as documents are added.  Each document is 
>>initially added in its own segment, and pushed onto the segment
>>stack. 
>>Whenever there are mergeFactor segments on the top of the stack that
>>are 
>>the same size, these are merged together into a new single segment
>>that 
>>replaces them.  So, if mergeFactor is 10, and you've added 122 
>>documents, the stack will have five segments, as follows:
>>   document 121
>>   document 120
>>   documents 110-119
>>   documents 100-109
>>   documents 0-100
>>The next merge will happen after document 129 is added, when a new 
>>segment will replace the segments for document 120 through document
>>129 
>>with a new single segment.
>>
>>It's actually a little more complicated than that, since (among other
>>
>>reasons) after docuuments are deleted a segment's size will no longer
>>be 
>>exactly a power of the mergeFactor.
>>
>>Doug
>>
>>Otis Gospodnetic wrote:
>>
>>>This is via mergeFactor?
>>>
>>>--- Doug Cutting <cu...@lucene.com> wrote:
>>>
>>>
>>>>The data is actually removed the next time its segment is merged. 
>>>>Optimizing forces it to happen, but it will also eventually happen
>>>
>>as
>>
>>>>more documents are added to the index, without optimization.
>>>>
>>>>Scott Ganyo wrote:
>>>>
>>>>
>>>>>It just marks the record as deleted.  The record isn't actually
>>>>
>>>>removed 
>>>>
>>>>
>>>>>until the index is optimized.
>>>>>
>>>>>Scott
>>>>>
>>>>>Rob Outar wrote:
>>>>>
>>>>>
>>>>>
>>>>>>Hello all,
>>>>>>
>>>>>>   I used the delete(Term) method, then I looked at the index
>>>>>
>>>>files, 
>>>>
>>>>
>>>>>>only one
>>>>>>file changed "_1tx.del"  I found references to the file still in
>>>>>
>>>>some 
>>>>
>>>>
>>>>>>of the
>>>>>>index files, so my question is how does Lucene handle deletes?
>>>>>>
>>>>>>Thanks,
>>>>>>
>>>>>>Rob
>>>>>>
>>>>>>
>>>>>>-- 
>>>>>>To unsubscribe, e-mail:
>>>>>>For additional commands, e-mail: 
>>>>>
>>>>>
>>>>>
>>>>--
>>>>To unsubscribe, e-mail:  
>>>><ma...@jakarta.apache.org>
>>>>For additional commands, e-mail:
>>>><ma...@jakarta.apache.org>
>>>>
>>>
>>>__________________________________________________
>>>Do you Yahoo!?
>>>Yahoo! Mail Plus – Powerful. Affordable. Sign up now.
>>>http://mailplus.yahoo.com
>>>
>>>--
>>>To unsubscribe, e-mail:  
>>
>><ma...@jakarta.apache.org>
>>
>>>For additional commands, e-mail:
>>
>><ma...@jakarta.apache.org>
>>
>>
>>--
>>To unsubscribe, e-mail:  
>><ma...@jakarta.apache.org>
>>For additional commands, e-mail:
>><ma...@jakarta.apache.org>
>>
> 
> 
> __________________________________________________
> Do you Yahoo!?
> Yahoo! Mail Plus – Powerful. Affordable. Sign up now.
> http://mailplus.yahoo.com
> 
> --
> To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
> For additional commands, e-mail: <ma...@jakarta.apache.org>
> 


--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>


Re: How does delete work?

Posted by Otis Gospodnetic <ot...@yahoo.com>.
I see, so every mergeFactor documents they are compined into a single
new segment in the index, and only when optimize() is called do those
multiple segments get merged into a single segment.
In your example below that would mean that optimize() was called after
document 100 was added, hence a single segment with documents 0-100.
Is this right?

Thanks,
Otis

--- Doug Cutting <cu...@lucene.com> wrote:
> Merging happens constantly as documents are added.  Each document is 
> initially added in its own segment, and pushed onto the segment
> stack. 
> Whenever there are mergeFactor segments on the top of the stack that
> are 
> the same size, these are merged together into a new single segment
> that 
> replaces them.  So, if mergeFactor is 10, and you've added 122 
> documents, the stack will have five segments, as follows:
>    document 121
>    document 120
>    documents 110-119
>    documents 100-109
>    documents 0-100
> The next merge will happen after document 129 is added, when a new 
> segment will replace the segments for document 120 through document
> 129 
> with a new single segment.
> 
> It's actually a little more complicated than that, since (among other
> 
> reasons) after docuuments are deleted a segment's size will no longer
> be 
> exactly a power of the mergeFactor.
> 
> Doug
> 
> Otis Gospodnetic wrote:
> > This is via mergeFactor?
> > 
> > --- Doug Cutting <cu...@lucene.com> wrote:
> > 
> >>The data is actually removed the next time its segment is merged. 
> >>Optimizing forces it to happen, but it will also eventually happen
> as
> >>
> >>more documents are added to the index, without optimization.
> >>
> >>Scott Ganyo wrote:
> >>
> >>>It just marks the record as deleted.  The record isn't actually
> >>
> >>removed 
> >>
> >>>until the index is optimized.
> >>>
> >>>Scott
> >>>
> >>>Rob Outar wrote:
> >>>
> >>>
> >>>>Hello all,
> >>>>
> >>>>    I used the delete(Term) method, then I looked at the index
> >>>
> >>files, 
> >>
> >>>>only one
> >>>>file changed "_1tx.del"  I found references to the file still in
> >>>
> >>some 
> >>
> >>>>of the
> >>>>index files, so my question is how does Lucene handle deletes?
> >>>>
> >>>>Thanks,
> >>>>
> >>>>Rob
> >>>>
> >>>>
> >>>>-- 
> >>>>To unsubscribe, e-mail:
> >>>>For additional commands, e-mail: 
> >>>
> >>>
> >>>
> >>
> >>--
> >>To unsubscribe, e-mail:  
> >><ma...@jakarta.apache.org>
> >>For additional commands, e-mail:
> >><ma...@jakarta.apache.org>
> >>
> > 
> > 
> > __________________________________________________
> > Do you Yahoo!?
> > Yahoo! Mail Plus � Powerful. Affordable. Sign up now.
> > http://mailplus.yahoo.com
> > 
> > --
> > To unsubscribe, e-mail:  
> <ma...@jakarta.apache.org>
> > For additional commands, e-mail:
> <ma...@jakarta.apache.org>
> > 
> 
> 
> --
> To unsubscribe, e-mail:  
> <ma...@jakarta.apache.org>
> For additional commands, e-mail:
> <ma...@jakarta.apache.org>
> 


__________________________________________________
Do you Yahoo!?
Yahoo! Mail Plus � Powerful. Affordable. Sign up now.
http://mailplus.yahoo.com

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>


Re: How does delete work?

Posted by Doug Cutting <cu...@lucene.com>.
Merging happens constantly as documents are added.  Each document is 
initially added in its own segment, and pushed onto the segment stack. 
Whenever there are mergeFactor segments on the top of the stack that are 
the same size, these are merged together into a new single segment that 
replaces them.  So, if mergeFactor is 10, and you've added 122 
documents, the stack will have five segments, as follows:
   document 121
   document 120
   documents 110-119
   documents 100-109
   documents 0-100
The next merge will happen after document 129 is added, when a new 
segment will replace the segments for document 120 through document 129 
with a new single segment.

It's actually a little more complicated than that, since (among other 
reasons) after docuuments are deleted a segment's size will no longer be 
exactly a power of the mergeFactor.

Doug

Otis Gospodnetic wrote:
> This is via mergeFactor?
> 
> --- Doug Cutting <cu...@lucene.com> wrote:
> 
>>The data is actually removed the next time its segment is merged. 
>>Optimizing forces it to happen, but it will also eventually happen as
>>
>>more documents are added to the index, without optimization.
>>
>>Scott Ganyo wrote:
>>
>>>It just marks the record as deleted.  The record isn't actually
>>
>>removed 
>>
>>>until the index is optimized.
>>>
>>>Scott
>>>
>>>Rob Outar wrote:
>>>
>>>
>>>>Hello all,
>>>>
>>>>    I used the delete(Term) method, then I looked at the index
>>>
>>files, 
>>
>>>>only one
>>>>file changed "_1tx.del"  I found references to the file still in
>>>
>>some 
>>
>>>>of the
>>>>index files, so my question is how does Lucene handle deletes?
>>>>
>>>>Thanks,
>>>>
>>>>Rob
>>>>
>>>>
>>>>-- 
>>>>To unsubscribe, e-mail:
>>>>For additional commands, e-mail: 
>>>
>>>
>>>
>>
>>--
>>To unsubscribe, e-mail:  
>><ma...@jakarta.apache.org>
>>For additional commands, e-mail:
>><ma...@jakarta.apache.org>
>>
> 
> 
> __________________________________________________
> Do you Yahoo!?
> Yahoo! Mail Plus – Powerful. Affordable. Sign up now.
> http://mailplus.yahoo.com
> 
> --
> To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
> For additional commands, e-mail: <ma...@jakarta.apache.org>
> 


--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>


Re: How does delete work?

Posted by Otis Gospodnetic <ot...@yahoo.com>.
This is via mergeFactor?

--- Doug Cutting <cu...@lucene.com> wrote:
> The data is actually removed the next time its segment is merged. 
> Optimizing forces it to happen, but it will also eventually happen as
> 
> more documents are added to the index, without optimization.
> 
> Scott Ganyo wrote:
> > It just marks the record as deleted.  The record isn't actually
> removed 
> > until the index is optimized.
> > 
> > Scott
> > 
> > Rob Outar wrote:
> > 
> >> Hello all,
> >>
> >>     I used the delete(Term) method, then I looked at the index
> files, 
> >> only one
> >> file changed "_1tx.del"  I found references to the file still in
> some 
> >> of the
> >> index files, so my question is how does Lucene handle deletes?
> >>
> >> Thanks,
> >>
> >> Rob
> >>
> >>
> >> -- 
> >> To unsubscribe, e-mail:
> >> For additional commands, e-mail: 
> > 
> > 
> > 
> 
> 
> --
> To unsubscribe, e-mail:  
> <ma...@jakarta.apache.org>
> For additional commands, e-mail:
> <ma...@jakarta.apache.org>
> 


__________________________________________________
Do you Yahoo!?
Yahoo! Mail Plus � Powerful. Affordable. Sign up now.
http://mailplus.yahoo.com

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>


Re: How does delete work?

Posted by Doug Cutting <cu...@lucene.com>.
The data is actually removed the next time its segment is merged. 
Optimizing forces it to happen, but it will also eventually happen as 
more documents are added to the index, without optimization.

Scott Ganyo wrote:
> It just marks the record as deleted.  The record isn't actually removed 
> until the index is optimized.
> 
> Scott
> 
> Rob Outar wrote:
> 
>> Hello all,
>>
>>     I used the delete(Term) method, then I looked at the index files, 
>> only one
>> file changed "_1tx.del"  I found references to the file still in some 
>> of the
>> index files, so my question is how does Lucene handle deletes?
>>
>> Thanks,
>>
>> Rob
>>
>>
>> -- 
>> To unsubscribe, e-mail:
>> For additional commands, e-mail: 
> 
> 
> 


--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>


Re: Updating documents

Posted by Doug Cutting <cu...@lucene.com>.
A deletion is only visible in other IndexReader instances created after 
the IndexReader where you made the deletion is closed.  So if you're 
searching using a different IndexReader, you need to re-open it after 
the deleting IndexReader is closed.  The lastModified method helps you 
to figure out when this is required.  The standard idiom is to cache the 
lastModified date returned when a reader is opened, then check it 
against the current value before each search.  When it is different, 
re-open.

Note: If you have many searching threads, it is most efficient for them 
to share an IndexReader.  But if one thread closes the reader while 
others are still searching it, then those searches may crash.  So, when 
re-opening the index, don't immediately close the old one.  Rather just 
let the garbage collector close its open files.  The only problem with 
this approach is that, if your index changes more frequently than the 
garbage collector collects old indexes then you can run out of file handles.

Hmm.  It would probably make things simpler if an IndexReader cached its 
lastModifiedDate when it was opened, so that applications don't have to 
do this themseleves to find out whether an IndexReader is out-of-date...

Doug

Rob Outar wrote:
> There is a reloading issue but I do not think lastModified is it:
> 
> static long lastModified(Directory directory)
>           Returns the time the index in this directory was last modified.
> static long lastModified(File directory)
>           Returns the time the index in the named directory was last
> modified.
> static long lastModified(String directory)
>           Returns the time the index in the named directory was last
> modified.
> 
> Do I need to create a new instance of IndexSearcher each time I search?
> 
> Thanks,
> 
> Rob
> 
> 
> -----Original Message-----
> From: Otis Gospodnetic [mailto:otis_gospodnetic@yahoo.com]
> Sent: Friday, November 22, 2002 12:20 PM
> To: Lucene Users List
> Subject: Re: Updating documents
> 
> 
> Don't you have to make use of lastModified method (I think in
> IndexSearcher), to 'reload' your instance of IndexSearcher?  I'm
> pulling this from some old, not very fresh memory....
> 
> Otis
> 
> --- Rob Outar <ro...@ideorlando.org> wrote:
> 
>>I have something odd going on, I have code that updates documents in
>>the
>>index so I have to delete it and then re add it.  When I re-add the
>>document
>>I immediately do a search on the newly added field which fails.
>>However, if
>>I rerun the query a second time it works??  I have the Searcher class
>>as an
>>attribute of my search class, does it not see the new changes?  Seems
>>like
>>when it is reinitialized with the changed index it is then able to
>>search on
>>the newly added field??
>>
>>Let me know if anyone has encountered this.
>>
>>Thanks,
>>
>>Rob
>>
>>
>>
>>--
>>To unsubscribe, e-mail:
>><ma...@jakarta.apache.org>
>>For additional commands, e-mail:
>><ma...@jakarta.apache.org>
>>
> 
> 
> __________________________________________________
> Do you Yahoo!?
> Yahoo! Mail Plus  Powerful. Affordable. Sign up now.
> http://mailplus.yahoo.com
> 
> --
> To unsubscribe, e-mail:
> <ma...@jakarta.apache.org>
> For additional commands, e-mail:
> <ma...@jakarta.apache.org>
> 
> 
> --
> To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
> For additional commands, e-mail: <ma...@jakarta.apache.org>
> 


--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>


Re: Updating documents

Posted by Otis Gospodnetic <ot...@yahoo.com>.
Btw. I have posted the code for this before, so you can find it in the
list archives.

Otis

--- Scott Ganyo <sc...@etapestry.com> wrote:
> Not each time you search, but if you've modified the index since you 
> opened the searcher, you need to create a new searcher to get the
> changes.
> 
> Scott
> 
> Rob Outar wrote:
> 
> > There is a reloading issue but I do not think lastModified is it:
> >
> > static long lastModified(Directory directory)
> >           Returns the time the index in this directory was last
> modified.
> > static long lastModified(File directory)
> >           Returns the time the index in the named directory was
> last
> > modified.
> > static long lastModified(String directory)
> >           Returns the time the index in the named directory was
> last
> > modified.
> >
> > Do I need to create a new instance of IndexSearcher each time I
> search?
> >
> > Thanks,
> >
> > Rob
> >
> >
> > -----Original Message-----
> > From: Otis Gospodnetic [mailto:otis_gospodnetic@yahoo.com]
> > Sent: Friday, November 22, 2002 12:20 PM
> > To: Lucene Users List
> > Subject: Re: Updating documents
> >
> >
> > Don't you have to make use of lastModified method (I think in
> > IndexSearcher), to 'reload' your instance of IndexSearcher?  I'm
> > pulling this from some old, not very fresh memory....
> >
> > Otis
> >
> > --- Rob Outar  wrote:
> >
> > >I have something odd going on, I have code that updates documents
> in
> > >the
> > >index so I have to delete it and then re add it.  When I re-add
> the
> > >document
> > >I immediately do a search on the newly added field which fails.
> > >However, if
> > >I rerun the query a second time it works??  I have the Searcher
> class
> > >as an
> > >attribute of my search class, does it not see the new changes? 
> Seems
> > >like
> > >when it is reinitialized with the changed index it is then able to
> > >search on
> > >the newly added field??
> > >
> > >Let me know if anyone has encountered this.
> > >
> > >Thanks,
> > >
> > >Rob
> > >
> > >
> > >
> > >--
> > >To unsubscribe, e-mail:
> > >
> > >For additional commands, e-mail:
> > >
> > >
> >
> >
> > __________________________________________________
> > Do you Yahoo!?
> > Yahoo! Mail Plus  Powerful. Affordable. Sign up now.
> > http://mailplus.yahoo.com
> >
> > --
> > To unsubscribe, e-mail:
> >
> > For additional commands, e-mail:
> >
> >
> >
> > --
> > To unsubscribe, e-mail:
> > For additional commands, e-mail: 
> 
> 
> -- 
> Brain: Pinky, are you pondering what I�m pondering?
> Pinky: I think so, Brain, but calling it a pu-pu platter? Huh, what
> were 
> they thinking?
> 
> 
> --
> To unsubscribe, e-mail:  
> <ma...@jakarta.apache.org>
> For additional commands, e-mail:
> <ma...@jakarta.apache.org>
> 


__________________________________________________
Do you Yahoo!?
Yahoo! Mail Plus � Powerful. Affordable. Sign up now.
http://mailplus.yahoo.com

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>


Re: Updating documents

Posted by Scott Ganyo <sc...@etapestry.com>.
Not each time you search, but if you've modified the index since you 
opened the searcher, you need to create a new searcher to get the changes.

Scott

Rob Outar wrote:

> There is a reloading issue but I do not think lastModified is it:
>
> static long lastModified(Directory directory)
>           Returns the time the index in this directory was last modified.
> static long lastModified(File directory)
>           Returns the time the index in the named directory was last
> modified.
> static long lastModified(String directory)
>           Returns the time the index in the named directory was last
> modified.
>
> Do I need to create a new instance of IndexSearcher each time I search?
>
> Thanks,
>
> Rob
>
>
> -----Original Message-----
> From: Otis Gospodnetic [mailto:otis_gospodnetic@yahoo.com]
> Sent: Friday, November 22, 2002 12:20 PM
> To: Lucene Users List
> Subject: Re: Updating documents
>
>
> Don't you have to make use of lastModified method (I think in
> IndexSearcher), to 'reload' your instance of IndexSearcher?  I'm
> pulling this from some old, not very fresh memory....
>
> Otis
>
> --- Rob Outar  wrote:
>
> >I have something odd going on, I have code that updates documents in
> >the
> >index so I have to delete it and then re add it.  When I re-add the
> >document
> >I immediately do a search on the newly added field which fails.
> >However, if
> >I rerun the query a second time it works??  I have the Searcher class
> >as an
> >attribute of my search class, does it not see the new changes?  Seems
> >like
> >when it is reinitialized with the changed index it is then able to
> >search on
> >the newly added field??
> >
> >Let me know if anyone has encountered this.
> >
> >Thanks,
> >
> >Rob
> >
> >
> >
> >--
> >To unsubscribe, e-mail:
> >
> >For additional commands, e-mail:
> >
> >
>
>
> __________________________________________________
> Do you Yahoo!?
> Yahoo! Mail Plus  Powerful. Affordable. Sign up now.
> http://mailplus.yahoo.com
>
> --
> To unsubscribe, e-mail:
>
> For additional commands, e-mail:
>
>
>
> --
> To unsubscribe, e-mail:
> For additional commands, e-mail: 


-- 
Brain: Pinky, are you pondering what I’m pondering?
Pinky: I think so, Brain, but calling it a pu-pu platter? Huh, what were 
they thinking?


--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>


RE: Updating documents

Posted by Otis Gospodnetic <ot...@yahoo.com>.
No, only each time the index is modified after the time you created
your last IndexSearcher instance, if I remember correctly.

Otis

--- Rob Outar <ro...@ideorlando.org> wrote:
> There is a reloading issue but I do not think lastModified is it:
> 
> static long lastModified(Directory directory)
>           Returns the time the index in this directory was last
> modified.
> static long lastModified(File directory)
>           Returns the time the index in the named directory was last
> modified.
> static long lastModified(String directory)
>           Returns the time the index in the named directory was last
> modified.
> 
> Do I need to create a new instance of IndexSearcher each time I
> search?
> 
> Thanks,
> 
> Rob
> 
> 
> -----Original Message-----
> From: Otis Gospodnetic [mailto:otis_gospodnetic@yahoo.com]
> Sent: Friday, November 22, 2002 12:20 PM
> To: Lucene Users List
> Subject: Re: Updating documents
> 
> 
> Don't you have to make use of lastModified method (I think in
> IndexSearcher), to 'reload' your instance of IndexSearcher?  I'm
> pulling this from some old, not very fresh memory....
> 
> Otis
> 
> --- Rob Outar <ro...@ideorlando.org> wrote:
> > I have something odd going on, I have code that updates documents
> in
> > the
> > index so I have to delete it and then re add it.  When I re-add the
> > document
> > I immediately do a search on the newly added field which fails.
> > However, if
> > I rerun the query a second time it works??  I have the Searcher
> class
> > as an
> > attribute of my search class, does it not see the new changes? 
> Seems
> > like
> > when it is reinitialized with the changed index it is then able to
> > search on
> > the newly added field??
> >
> > Let me know if anyone has encountered this.
> >
> > Thanks,
> >
> > Rob
> >
> >
> >
> > --
> > To unsubscribe, e-mail:
> > <ma...@jakarta.apache.org>
> > For additional commands, e-mail:
> > <ma...@jakarta.apache.org>
> >
> 
> 
> __________________________________________________
> Do you Yahoo!?
> Yahoo! Mail Plus  Powerful. Affordable. Sign up now.
> http://mailplus.yahoo.com
> 
> --
> To unsubscribe, e-mail:
> <ma...@jakarta.apache.org>
> For additional commands, e-mail:
> <ma...@jakarta.apache.org>
> 
> 
> --
> To unsubscribe, e-mail:  
> <ma...@jakarta.apache.org>
> For additional commands, e-mail:
> <ma...@jakarta.apache.org>
> 


__________________________________________________
Do you Yahoo!?
Yahoo! Mail Plus � Powerful. Affordable. Sign up now.
http://mailplus.yahoo.com

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>


RE: Updating documents

Posted by Rob Outar <ro...@ideorlando.org>.
There is a reloading issue but I do not think lastModified is it:

static long lastModified(Directory directory)
          Returns the time the index in this directory was last modified.
static long lastModified(File directory)
          Returns the time the index in the named directory was last
modified.
static long lastModified(String directory)
          Returns the time the index in the named directory was last
modified.

Do I need to create a new instance of IndexSearcher each time I search?

Thanks,

Rob


-----Original Message-----
From: Otis Gospodnetic [mailto:otis_gospodnetic@yahoo.com]
Sent: Friday, November 22, 2002 12:20 PM
To: Lucene Users List
Subject: Re: Updating documents


Don't you have to make use of lastModified method (I think in
IndexSearcher), to 'reload' your instance of IndexSearcher?  I'm
pulling this from some old, not very fresh memory....

Otis

--- Rob Outar <ro...@ideorlando.org> wrote:
> I have something odd going on, I have code that updates documents in
> the
> index so I have to delete it and then re add it.  When I re-add the
> document
> I immediately do a search on the newly added field which fails.
> However, if
> I rerun the query a second time it works??  I have the Searcher class
> as an
> attribute of my search class, does it not see the new changes?  Seems
> like
> when it is reinitialized with the changed index it is then able to
> search on
> the newly added field??
>
> Let me know if anyone has encountered this.
>
> Thanks,
>
> Rob
>
>
>
> --
> To unsubscribe, e-mail:
> <ma...@jakarta.apache.org>
> For additional commands, e-mail:
> <ma...@jakarta.apache.org>
>


__________________________________________________
Do you Yahoo!?
Yahoo! Mail Plus  Powerful. Affordable. Sign up now.
http://mailplus.yahoo.com

--
To unsubscribe, e-mail:
<ma...@jakarta.apache.org>
For additional commands, e-mail:
<ma...@jakarta.apache.org>


--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>


Re: Updating documents

Posted by Otis Gospodnetic <ot...@yahoo.com>.
Don't you have to make use of lastModified method (I think in
IndexSearcher), to 'reload' your instance of IndexSearcher?  I'm
pulling this from some old, not very fresh memory....

Otis

--- Rob Outar <ro...@ideorlando.org> wrote:
> I have something odd going on, I have code that updates documents in
> the
> index so I have to delete it and then re add it.  When I re-add the
> document
> I immediately do a search on the newly added field which fails. 
> However, if
> I rerun the query a second time it works??  I have the Searcher class
> as an
> attribute of my search class, does it not see the new changes?  Seems
> like
> when it is reinitialized with the changed index it is then able to
> search on
> the newly added field??
> 
> Let me know if anyone has encountered this.
> 
> Thanks,
> 
> Rob
> 
> 
> 
> --
> To unsubscribe, e-mail:  
> <ma...@jakarta.apache.org>
> For additional commands, e-mail:
> <ma...@jakarta.apache.org>
> 


__________________________________________________
Do you Yahoo!?
Yahoo! Mail Plus � Powerful. Affordable. Sign up now.
http://mailplus.yahoo.com

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>


Updating documents

Posted by Rob Outar <ro...@ideorlando.org>.
I have something odd going on, I have code that updates documents in the
index so I have to delete it and then re add it.  When I re-add the document
I immediately do a search on the newly added field which fails.  However, if
I rerun the query a second time it works??  I have the Searcher class as an
attribute of my search class, does it not see the new changes?  Seems like
when it is reinitialized with the changed index it is then able to search on
the newly added field??

Let me know if anyone has encountered this.

Thanks,

Rob



--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>


Re: How does delete work?

Posted by Scott Ganyo <sc...@etapestry.com>.
It just marks the record as deleted.  The record isn't actually removed 
until the index is optimized.

Scott

Rob Outar wrote:

> Hello all,
>
> 	I used the delete(Term) method, then I looked at the index files, 
> only one
> file changed "_1tx.del"  I found references to the file still in some 
> of the
> index files, so my question is how does Lucene handle deletes?
>
> Thanks,
>
> Rob
>
>
> --
> To unsubscribe, e-mail:
> For additional commands, e-mail: 


-- 
Brain: Pinky, are you pondering what I’m pondering?
Pinky: I think so, Brain, but calling it a pu-pu platter? Huh, what were 
they thinking?


--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>