Example usage for org.apache.lucene.search ScoreDoc toString

List of usage examples for org.apache.lucene.search ScoreDoc toString

Introduction

In this page you can find the example usage for org.apache.lucene.search ScoreDoc toString.

Prototype

@Override
    public String toString() 

Source Link

Usage

From source file:com.github.le11.nls.lucene.UIMATypeBasedSimilarityTest.java

License:Apache License

@Test
public void baseSimilarityTest() {
    try {//from   w  w  w  .j a  v  a  2 s.c  o  m
        IndexSearcher searcher = new IndexSearcher(dir, true);
        Similarity payloadSimilarity = new UIMATypeBasedSimilarity();
        searcher.setSimilarity(payloadSimilarity);
        //      BooleanQuery booleanQuery = new BooleanQuery();
        //      booleanQuery.add(new PayloadTermQuery(new Term("title", "London"), new MaxPayloadFunction()), BooleanClause.Occur.SHOULD);
        //      booleanQuery.add(new PayloadTermQuery(new Term("title", "English"), new MaxPayloadFunction()), BooleanClause.Occur.SHOULD);
        //      SpanQuery[] clauses = new SpanQuery[]{new PayloadTermQuery(new Term("title","London"),new MaxPayloadFunction()),
        //              new PayloadTermQuery(new Term("title","English"),new MaxPayloadFunction())};
        //      int slop = 3;
        //      boolean inOrder = true;
        //      Query query = new PayloadNearQuery(clauses, slop, inOrder);
        Query directQuery = new TermQuery(new Term("title", "London"));
        TopDocs topDocs = searcher.search(directQuery, 10);
        System.out.println("Number of matching docs: " + topDocs.totalHits);
        ScoreDoc doc1 = topDocs.scoreDocs[0];
        System.out.println("Doc: " + doc1.toString());
        System.out.println("Explain: " + searcher.explain(directQuery, doc1.doc));
        Query payloadQuery = new PayloadTermQuery(new Term("title", "London"), new MaxPayloadFunction());
        topDocs = searcher.search(payloadQuery, 10);
        System.out.println("Number of matching docs: " + topDocs.totalHits);
        ScoreDoc doc2 = topDocs.scoreDocs[0];
        System.out.println("Doc: " + doc2.toString());
        System.out.println("Explain: " + searcher.explain(payloadQuery, doc2.doc));
        assertTrue(doc1.score < doc2.score);
    } catch (Exception e) {
        e.printStackTrace();
        fail(e.getLocalizedMessage());
    }
}

From source file:com.stratio.cassandra.lucene.service.RowServiceWide.java

License:Apache License

/**
 * {@inheritDoc}//from  w w w  . ja va2s . c  om
 *
 * The {@link Row} is a logical one.
 */
@Override
protected List<ScoredRow> scoredRows(List<SearchResult> searchResults, long timestamp) {

    Map<String, Row> rowsByScore = new HashMap<>(searchResults.size());

    // Group key queries by partition keys
    Map<String, ScoreDoc> scoresByClusteringKey = new HashMap<>(searchResults.size());
    Map<DecoratedKey, List<CellName>> keys = new HashMap<>();
    for (SearchResult searchResult : searchResults) {
        DecoratedKey partitionKey = searchResult.getPartitionKey();
        CellName clusteringKey = searchResult.getClusteringKey();
        ScoreDoc scoreDoc = searchResult.getScoreDoc();
        String rowHash = rowMapper.hash(partitionKey, clusteringKey);
        scoresByClusteringKey.put(rowHash, scoreDoc);
        List<CellName> clusteringKeys = keys.get(partitionKey);
        if (clusteringKeys == null) {
            clusteringKeys = new ArrayList<>();
            keys.put(partitionKey, clusteringKeys);
        }
        clusteringKeys.add(clusteringKey);
    }

    for (Map.Entry<DecoratedKey, List<CellName>> entry : keys.entrySet()) {
        DecoratedKey partitionKey = entry.getKey();
        for (List<CellName> clusteringKeys : Lists.partition(entry.getValue(), 1000)) {
            Map<CellName, Row> partitionRows = rows(partitionKey, clusteringKeys, timestamp);
            for (Map.Entry<CellName, Row> entry1 : partitionRows.entrySet()) {
                CellName clusteringKey = entry1.getKey();
                Row row = entry1.getValue();
                String rowHash = rowMapper.hash(partitionKey, clusteringKey);
                ScoreDoc scoreDoc = scoresByClusteringKey.get(rowHash);
                Float score = scoreDoc.score;
                Row scoredRow = addScoreColumn(row, timestamp, score);
                rowsByScore.put(scoreDoc.toString(), scoredRow);
            }
        }
    }

    List<ScoredRow> scoredRows = new ArrayList<>(searchResults.size());
    for (SearchResult searchResult : searchResults) {
        ScoreDoc scoreDoc = searchResult.getScoreDoc();
        Row row = rowsByScore.get(scoreDoc.toString());
        if (row != null) {
            scoredRows.add(new ScoredRow(row, scoreDoc));
        }
    }

    return scoredRows;
}

From source file:org.rapidpm.microservice.optionals.index.stores.indices.IndexOfTypeString.java

License:Apache License

@Override
public List<String> query(final String query) {
    try {// w  w  w  . ja va  2 s .  c  o m
        final Query q = new QueryParser(FIELD_TXT, analyzer).parse(query);
        final IndexSearcher searcher = new IndexSearcher(directoryReader);
        final TopScoreDocCollector collector = TopScoreDocCollector.create(1_00);
        searcher.search(q, collector);
        final ScoreDoc[] hits = collector.topDocs().scoreDocs;
        final List<String> result = new ArrayList<>();
        for (final ScoreDoc hit : hits) {
            result.add(hit.toString());
        }
        return result;
    } catch (ParseException | IOException e) {
        e.printStackTrace();
    }
    return Collections.emptyList();
}