lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Chris Lamprecht <clampre...@gmail.com>
Subject Re: batch delete
Date Mon, 28 Mar 2005 08:34:07 GMT
That's one way to do it - do a query, get a list of document IDs, and
then delete that list of doc IDs.

The method I mentioned in my previous message is different - you're
getting a list of all Terms that are in the index.  There will be 1
term for each date (possibly down to the millisecond), which could
point to 1 or more documents (maybe 0 or more -- I'm not sure).  But
using this method, you don't need to know the document IDs; you only
need to know all of the terms you want to delete.

Try something like this code -- (double-check to make sure it's ok to
delete while enumerating over the Terms):

Term first = new Term("foo", "start");
Term last = new Term("foo", "end");
TermEnum terms = reader.terms(first);
while (terms.next() && terms.term().compareTo(last) <= 0) {
   reader.delete(terms.term());
}
reader.close();



On Mon, 28 Mar 2005 18:19:46 +1000, Ben <newreaders@gmail.com> wrote:
> OK, so I have to query for a list of old documents (from a given date)
> and delete each document individually?
> 
> Can I use DateFilter.Before() with Term?
> 
> Thanks,
> Ben
> 
> On Mon, 28 Mar 2005 02:13:48 -0600, Chris Lamprecht
> <clamprecht@gmail.com> wrote:
> > Ben,
> >
> > If you know the exact terms you want to delete, you can do it without querying:
> >
> > IndexReader reader = IndexReader.open(indexDir);
> > Term deleteTerm = new Term("yyyymmdd", yyyymmdd);
> > reader.delete(deleteTerm);
> >
> > If you are using a lucene date field, I think you'll have to enumerate
> > through all the dates that you want to delete.  You can use
> > reader.terms(Term) to get an enumeration of terms.
> >
> > -chris
> >
> > On Mon, 28 Mar 2005 17:58:44 +1000, Ben <newreaders@gmail.com> wrote:
> > > BTW is it possible to do what I am trying to achieve without querying
> > > the database or the index?
> > >
> > > Thanks,
> > > Ben
> > >
> > > On Mon, 28 Mar 2005 10:38:52 +1000, Ben <newreaders@gmail.com> wrote:
> > > > Hi
> > > >
> > > > I need to delete a number of documents that are older than a
> > > > particular time from a Lucene index. What is the best way to do this?
> > > >
> > > > Thanks,
> > > > Ben
> > > >
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
> > > For additional commands, e-mail: java-user-help@lucene.apache.org
> > >
> > >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
> > For additional commands, e-mail: java-user-help@lucene.apache.org
> >
> >
>

---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-user-help@lucene.apache.org


Mime
View raw message