lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "lucene user" <luz...@gmail.com>
Subject Re: next() not called in FilterIndexReader.FilterTermDocs
Date Mon, 11 Jun 2007 04:46:18 GMT
I already have this implemented with a filter. Its working alright, but
sends my running time
from .1 sec to .4 sec - thats no big deal now but we hope to eventually grow
the archive to
an insanely large size. Besides, I think the FilterIndexReader is a
powerfull tool, and I'd
like to get it working...  I'd also like too know if my concept of how the
index works at the
low level is correct, and if this is my bug or a bug in lucene.




On 6/10/07, Erick Erickson <erickerickson@gmail.com> wrote:
>
> Wouldn't it be easier to just make a Filter? That's what they were
> intended for.
>
> Especially, if by "certain set", you mean that these are pre-defined
> values, you could create your filters at start-up time and use
> CachingWrapperFilter to keep them around.
>
> Either way, I suspect it would be much simpler.
>
> Best
> Erick
>
>
> On 6/10/07, lucene user <luz290@gmail.com> wrote:
> >
> > I am trying to use a Filter Index Reader to
> > provide access only to the subset of my archive
> > for which a certain field contains one of a given
> > list of values.
> >
> > The idea is to create a special term for this field
> > that means 'any term in the list', and add an 'AND'
> > clause to every query, to enforce the condition.
> >
> > I override the seek() and next() methods of FilterTermDocs.
> >
> > In the seek(Term t) method I check if t is my special term.
> > If it is, I initialize an instance variable in the FilterTermDocs,
> > with an Iterator over my List. I then call super.seek(s) for
> > a term 's' which has the same field name and a value which
> > is the next element from the interator.
> >
> > In the next() method, If super.next() returns false,
> > but the iterator is there and has a next element,
> > I call super.seek(s) for the next element and try
> > again.
> >
> > The problem is the although my seek() method is being called,
> > my next() method is not. Thus I never get to iterate through
> > my list, and only receive results corrasponding to its first
> > element.
> >
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message