2021-09-25 18:31:41 +02:00
|
|
|
package it.cavallium.dbengine.lucene.collector;
|
|
|
|
|
|
|
|
import org.apache.lucene.index.LeafReaderContext;
|
|
|
|
import org.apache.lucene.search.Collector;
|
|
|
|
import org.apache.lucene.search.LeafCollector;
|
|
|
|
import org.apache.lucene.search.ScoreDoc;
|
|
|
|
import org.apache.lucene.search.ScoreMode;
|
2021-11-08 16:33:41 +01:00
|
|
|
import reactor.core.publisher.FluxSink;
|
2021-09-25 18:31:41 +02:00
|
|
|
import reactor.core.publisher.Sinks.Many;
|
|
|
|
|
|
|
|
public class ReactiveCollector implements Collector {
|
|
|
|
|
2021-11-08 16:33:41 +01:00
|
|
|
private final FluxSink<ScoreDoc> scoreDocsSink;
|
2021-09-25 18:31:41 +02:00
|
|
|
private int shardIndex;
|
|
|
|
|
2021-11-08 16:33:41 +01:00
|
|
|
public ReactiveCollector(FluxSink<ScoreDoc> scoreDocsSink) {
|
2021-09-25 18:31:41 +02:00
|
|
|
this.scoreDocsSink = scoreDocsSink;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public LeafCollector getLeafCollector(LeafReaderContext leafReaderContext) {
|
|
|
|
return new ReactiveLeafCollector(leafReaderContext, scoreDocsSink, shardIndex);
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public ScoreMode scoreMode() {
|
|
|
|
return ScoreMode.COMPLETE_NO_SCORES;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setShardIndex(int shardIndex) {
|
|
|
|
this.shardIndex = shardIndex;
|
|
|
|
}
|
|
|
|
}
|