private void calculateRelevance( List<Result> resultList, Document query, double alfa, double beta, double gama) { List<Document> goodDocuments = new ArrayList<>(); List<Document> badDocuments = new ArrayList<>(); for (Result result : resultList) { if (result.isMarkedAsGood()) { goodDocuments.add(result.getDocument()); } else { badDocuments.add(result.getDocument()); } } for (Term term : DatabaseCollection.getTermMap().values()) { double relevance = alfa * query.getTermRelevance(term) + (avg(term, goodDocuments)) * beta - avg(term, badDocuments) * gama; query.setTermRelevance(term, relevance); } }