Я хотел бы ограничить результаты поиска документами, содержащими не менее n
токенов / слов, то есть набор результатов должен содержать документы, содержащие не менее 100
токенов.Я пытался написать пользовательский LeafCollector
, но API не кажется интуитивно понятным.Прежде чем погрузиться глубже, я хотел спросить, возможно ли это вообще, и если это возможно, возможно, кто-то может предоставить краткое доказательство реализации концепции, чтобы заставить меня двигаться вперед.
Вот то, что у меня есть, логика должнабыть в методе collect
, насколько я понимаю.
public class CustomCollector extends TopDocsCollector<ScoreDoc> {
protected CustomCollector(PriorityQueue<ScoreDoc> pq) {
super(pq);
}
@Override
public LeafCollector getLeafCollector(LeafReaderContext leafReaderContext) throws IOException {
return new LeafCollector() {
@Override
public void setScorer(Scorer scorer) throws IOException {
}
@Override
public void collect(int i) throws IOException {
}
};
}
@Override
public boolean needsScores() {
return true;
}
}