[
https://issues.apache.org/jira/browse/LUCENE-4370?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13999732#comment-13999732
]
Shikhar Bhushan commented on LUCENE-4370:
-----------------------------------------
Been thinking about the semantics of these done callbacks not being invoked in
case of exceptions which was a concern raised by [~jpountz] in LUCENE-5527,
this seems to be not very helpful when e.g. you have a TimeExceededException or
EarlyTerminatingCollectorException thrown and you need to maybe merge in some
state into the parent collector in {{LeafCollector.leafDone()}}, or perhaps
finalize results in {{Collector.done()}}.
Maybe we need a special kind of exception, just like
CollectionTerminatedException. The semantics for CollectionTerminatedException
are currently that collection continues with the next leaf. So some new
base-class for the "rethrow me but invoke done callbacks" case?
In case of any other kinds of exception like IOException, I don't think we
should be invoking done() callbacks because the collector's results should not
be expected to be usable.
> Let Collector know when all docs have been collected
> ----------------------------------------------------
>
> Key: LUCENE-4370
> URL: https://issues.apache.org/jira/browse/LUCENE-4370
> Project: Lucene - Core
> Issue Type: Improvement
> Components: core/search
> Affects Versions: 4.0-BETA
> Reporter: Tomás Fernández Löbbe
> Priority: Minor
> Attachments: LUCENE-4370.patch, LUCENE-4370.patch
>
>
> Collectors are a good point for extension/customization of Lucene/Solr,
> however sometimes it's necessary to know when the last document has been
> collected (for example, for flushing cached data).
> It would be nice to have a method that gets called after the last doc has
> been collected.
--
This message was sent by Atlassian JIRA
(v6.2#6252)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]