On Saturday 17 December 2005 17:04, Cret Hummin wrote:
> Hi All,
> 
> When using Searcher.search(Query, Filter), and I use my own custom 
> filter, it appears I'm presented with /all/ the documents in the index, 
> i.e. in the method bits(IndexReader reader) from my custom Filter, the 
> value of reader.maxDoc() is always the number of documents in the index. 
> The same is true when do Searcher.search(FilteredQuery(Query, Filter)).
>
> Is it possible to filter /after/ the query has limited the number of 
> possible documents, /before/ returning a Hits collection?

The easiest way to do this is by adding a required clause to a BooleanQuery.
You might consider using a ConstantScoringQuery for this clause:
http://issues.apache.org/jira/browse/LUCENE-383

In case you really want to filter only the documents that match a query
you'll need to implement a filtering HitCollector and use it on the
lower level search API. 
An easier way to implement such a filtering HitCollector could be
by adding to it the search methods that return a Hits as an alternative
to Filter.
A disadvantage of this approach is that skipTo() cannot be used
to combine the filter and the query, see also here:
http://issues.apache.org/jira/browse/LUCENE-330

Regards,
Paul Elschot


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to