gf2121 commented on code in PR #12642:
URL: https://github.com/apache/lucene/pull/12642#discussion_r1354116012
##########
lucene/facet/src/test/org/apache/lucene/facet/TestDrillSideways.java:
##########
@@ -316,6 +316,58 @@ public void testBasic() throws Exception {
IOUtils.close(searcher.getIndexReader(), taxoReader, taxoWriter, dir,
taxoDir);
}
+ public void testCollectionTerminated() throws Exception {
+ try (Directory dir = newDirectory();
+ Directory taxoDir = newDirectory();
+ RandomIndexWriter w = new RandomIndexWriter(random(), dir);
+ DirectoryTaxonomyWriter taxoW =
+ new DirectoryTaxonomyWriter(taxoDir,
IndexWriterConfig.OpenMode.CREATE)) {
+ FacetsConfig facetsConfig = new FacetsConfig();
+
+ Document d = new Document();
+ d.add(new FacetField("foo", "bar"));
+ w.addDocument(facetsConfig.build(taxoW, d));
+
+ try (IndexReader r = w.getReader();
+ TaxonomyReader taxoR = new DirectoryTaxonomyReader(taxoW)) {
+ IndexSearcher searcher = new IndexSearcher(r);
+
+ Query baseQuery = new MatchAllDocsQuery();
+ Query dimQ = new TermQuery(new Term("foo", "bar"));
+
+ DrillDownQuery ddq = new DrillDownQuery(facetsConfig, baseQuery);
+ ddq.add("foo", dimQ);
+ DrillSideways drillSideways = new DrillSideways(searcher,
facetsConfig, taxoR);
+
+ CollectorManager<?, ?> cm =
+ new CollectorManager<>() {
+ @Override
+ public Collector newCollector() throws IOException {
+ return new Collector() {
Review Comment:
Thanks @gsmiller for digging!
It is a bit pity that we can not introduce `AssertingIndexSearcher` here as
we need it to ensure `#finish` called on the last `LeafCollector`. And if we
have only one segment, the check could be lost :(
if we can accept the expose of
`AssertingCollector#hasFinishedCollectingPreviousLeaf`, maybe tweak the
asserting search logic like:
```
IndexSearcher searcher = new IndexSearcher(r) {
@Override
protected void search(List<LeafReaderContext> leaves, Weight weight,
Collector collector)
throws IOException {
AssertingCollector assertingCollector =
AssertingCollector.wrap(collector);
super.search(leaves, weight, assertingCollector);
assert assertingCollector.hasFinishedCollectingPreviousLeaf();
}
};
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]