Example usage for org.apache.lucene.search TopScoreDocCollector create

List of usage examples for org.apache.lucene.search TopScoreDocCollector create

Introduction

In this page you can find the example usage for org.apache.lucene.search TopScoreDocCollector create.

Prototype

public static TopScoreDocCollector create(int numHits, int totalHitsThreshold) 

Source Link

Document

Creates a new TopScoreDocCollector given the number of hits to collect and the number of hits to count accurately.

Usage

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();
}