lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Michael Sokolov <msoko...@gmail.com>
Subject Re: filtering and chaining Collectors
Date Wed, 15 Aug 2018 21:27:31 GMT
Hmm the more I root around, the more crazy it seems to try to thread a
return value through all the different places collect() gets called from.
Somehow I thought it would just be one place in IndexSearcher somewhere.

On Wed, Aug 15, 2018 at 5:18 PM Michael Sokolov <msokolov@gmail.com> wrote:

> We have MultiCollector to enable running multiple Collectors on the same
> hits, in sequence for each hit. I think a nice extension would be to enable
> filtering so that earlier collectors could reject a hit, preventing later
> collectors from seeing it.  This way you could have a post-filter
> implemented in one collector, and some other collection, like faceting, in
> the next one, that wants to ignore hits that are filtered in this
> post-filter.
>
> The implementation idea would be to return a "status" value from
> LeafCollector.collect() indicating how to proceed. This could also
> naturally be used for early termination (you could have status=TERMINATE |
> SKIP | COLLECT, say).
>
> I was trying to undertsand why this wasn't done before  for early
> termination since it seemed so natural to me, and thought - there must be a
> reason. But I went and read through (skimmed really) the original
> EarlyTerminatingCollector issue (
> https://issues.apache.org/jira/browse/LUCENE-4858) and didn't see any
> discussion of that.
>
> Am I missing something here?
>
> -Mike
>

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