Как ограничить результаты поиска Lucene документами, содержащими не менее n слов? - PullRequest
0 голосов
/ 06 сентября 2018

Я хотел бы ограничить результаты поиска документами, содержащими не менее 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;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...