Example usage for org.apache.lucene.analysis CharArrayMap entrySet

List of usage examples for org.apache.lucene.analysis CharArrayMap entrySet

Introduction

In this page you can find the example usage for org.apache.lucene.analysis CharArrayMap entrySet.

Prototype

EntrySet entrySet

To view the source code for org.apache.lucene.analysis CharArrayMap entrySet.

Click Source Link

Usage

From source file:org.tallison.lucene.contrast.QueryToCorpusContraster.java

License:Apache License

private List<TermIDF> getResults(String fieldName, CharArrayMap<MutableValueInt> map, int numResults) {
    TFIDFPriorityQueue queue = new TFIDFPriorityQueue(numResults);
    IDFIndexCalc idfCalc = new IDFIndexCalc(searcher.getIndexReader());
    int tf = -1;/*from www.j  a  va 2  s . c o  m*/
    double idf = -1.0;
    int minTf = minTermFreq;
    String text = null;
    //make more efficient
    //    Term reusableTerm = new Term(fieldName, "");
    for (Map.Entry<Object, MutableValueInt> entry : map.entrySet()) {

        tf = entry.getValue().value;
        if (tf < minTf)
            continue;

        text = new String((char[]) entry.getKey());
        // calculate idf for potential phrase
        try {
            idf = idfCalc.singleTermIDF(new Term(fieldName, text));
        } catch (IOException e) {
            throw new RuntimeException("Error trying to calculate IDF: " + e.getMessage());
        }
        int estimatedDF = (int) Math.max(1, Math.round(idfCalc.unIDF(idf)));

        TermIDF r = new TermIDF(text, estimatedDF, tf, idf);

        queue.insertWithOverflow(r);
    }
    List<TermIDF> results = new LinkedList<TermIDF>();

    while (queue.size() > 0) {
        results.add(0, queue.pop());
    }
    return results;
}