List of usage examples for org.apache.lucene.search TopScoreDocCollector create
public static TopScoreDocCollector create(int numHits, int totalHitsThreshold)
From source file:uk.ac.ebi.mdk.service.query.structure.AbstractConnectivityService.java
License:Open Source License
String searchGetConnectivity(Query query) { try {/* w ww . j av a 2 s .com*/ TopScoreDocCollector collector = TopScoreDocCollector.create(getMaxResults(), true); searcher.search(query, collector); ScoreDoc[] hits = collector.topDocs().scoreDocs; for (ScoreDoc scoreDoc : hits) { return value(scoreDoc, MoleculeCollectionConnectivityLuceneFields.Connectivity.toString()); } } catch (IOException ex) { LOGGER.error("Error occur whilst searching with query " + query, ex); } return null; }
From source file:uk.ac.ebi.metingear.search.SearchableIndex.java
License:Open Source License
public List<AnnotatedEntity> getRankedEntities(Query query, Integer number, Class filter) throws IOException { IndexSearcher searcher = new IndexSearcher(index, true); TopDocsCollector collector = TopScoreDocCollector.create(number * 4, true); // * 4 to get more qureires. The number is for all queries when in fact we only want a certain number searcher.search(query, collector);//ww w .j av a 2 s . c o m ScoreDoc[] hits = collector.topDocs().scoreDocs; List<AnnotatedEntity> entities = new ArrayList<AnnotatedEntity>(); for (ScoreDoc scoreDoc : hits) { UUID uuid = UUID.fromString(searcher.doc(scoreDoc.doc).get("uuid")); if (map.containsKey(uuid)) { AnnotatedEntity entity = map.get(uuid); if (filter.isInstance(entity)) { entities.add(entity); // reached limit if (entities.size() == number) { return entities; } } } else { LOGGER.error("Null object in UUID -> Entity map"); } } return entities; }
From source file:yasoco.TermScore.java
public String retrieve(int docId, Query query) throws Exception { Document queryDoc = reader.document(docId); TopScoreDocCollector collector = TopScoreDocCollector.create(numWanted, true); ScoreDoc[] hits = null;//from www. j ava 2 s. co m TopDocs topDocs = null; StringBuffer buff = new StringBuffer(); String runName = prop.getProperty("runname"); searcher.search(query, collector); topDocs = collector.topDocs(); hits = topDocs.scoreDocs; for (int i = 0; i < hits.length; ++i) { int rdocId = hits[i].doc; Document d = searcher.doc(rdocId); String retDocName = d.get(JavaSCTree.FIELD_DOCNAME); String qDocName = queryDoc.get(JavaSCTree.FIELD_DOCNAME); if (qDocName.equals(retDocName)) continue; buff.append(qDocName).append("\tQ0\t").append(retDocName).append("\t").append((i + 1)).append("\t") .append(hits[i].score).append("\t").append(runName).append("\n"); } return buff.toString(); }