epotyom commented on issue #13671:
URL: https://github.com/apache/lucene/issues/13671#issuecomment-2314681028
@gsmiller , there is new method
```java
public void DrillSideways#search(
DrillDownQuery query,
CollectorOwner<?, ?> drillDownCollectorOwner,
List<CollectorOwner<?, ?>> drillSidewaysCollectorOwners)
```
([link](https://github.com/apache/lucene/blob/0f5359a2ac6687d466c71e5bf5fa8138a9c07934/lucene/facet/src/java/org/apache/lucene/facet/DrillSideways.java#L434C1-L437C63))
that I believe does what you describe - it takes `CollectorOwner` for drill
down and for each drill sideways dimension. It's up to user to decide what they
want to collect for each dimension, e.g. top hits, doc ID sets for the main
`facets` module (`FacetsCollectorManager`), or facets using the new sandbox
facets module. Using wildcard types for `CollectorOwner`s allows doing
something like collecting top hits for one drill-sideways dimension, but
collect facets for other dimension. So yeah, we will kind of loose this
flexibility with the Option 1; but there is `MultiCollectorManager` workaround.
I'm working on changing this method to something like:
```java
public <C extends Collector, T, K extends Collector, R> Result<T, R>
DrillSideways#search(
DrillDownQuery query,
CollectorManager<C, T> drillDownCollectorManagers,
List<CollectorManager<K, R>> drillSidewaysCollectorManagers) {...}
// We need to add another result class that doesn't depend on Facets
public record Result<T, R> (T drillDownResult, List<R>
drillSidewaysResults) {}
```
I believe changing it will be more or less straight forward.
--
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]