Ignore:
Timestamp:
2001-04-15T11:33:18+12:00 (23 years ago)
Author:
daven
Message:

correct a bug in the term frequency code from yesterday that lost
some items. Added comments.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/java-client/org/nzdl/gsdl/service/NzdlResultSet.java

    r2313 r2320  
    3434import java.util.Iterator;
    3535import java.util.Comparator;
     36import java.util.*;
    3637
    3738/**
     
    4243 * @author Aziz Mahoui    ([email protected])
    4344 * @author Gordon Paynter ([email protected])
     45 * @author Dave Nichols   ([email protected])
    4446 * @author Brett Sheeran ([email protected]) (comments)
    4547 */
     
    7173  }
    7274
    73   public String getTermFrequencyString() {
    74       return constructTermFrequencyString(null);
    75   }
    76 
    7775    /*
    7876     * display term frequency results in descending frequency order
     77     * for alternative sorting orders alter the compareTo method
    7978     */
    8079
    81     public String getOrderedTermFrequencyString() {
    82      class DescendingOrder implements Comparator {
    83         public int compare(Object o1, Object o2) {
    84         return -((Comparable)o1).compareTo(o2);
     80    public String getTermFrequencyString() {
     81 
     82    class TermFrequency implements Comparable {
     83        String term; long frequency;
     84        TermFrequency( String _term, Long _frequency) {
     85        term = _term; frequency = _frequency.longValue();
     86        }
     87        public int compareTo (Object o1) {
     88        TermFrequency test = (TermFrequency) o1;
     89        if (frequency == test.frequency) return 0;
     90        if (frequency < test.frequency)
     91            return -1;
     92        else
     93            return 1;
    8594        }
    8695    }
    87     return constructTermFrequencyString(new DescendingOrder());
    88     }
    89 
    90 
    91     private String constructTermFrequencyString(Comparator comparator) {
    92 
    93     TreeMap freqOrder = new TreeMap(comparator);
     96
     97    ArrayList freqList = new ArrayList();
    9498    Iterator iter = m_frequencies.entrySet().iterator();
    9599    while (iter.hasNext()) {
    96100        Map.Entry mapEntry = (Map.Entry) iter.next();
    97         freqOrder.put( mapEntry.getValue(), mapEntry.getKey());
     101        freqList.add( new TermFrequency((String)mapEntry.getKey(), (Long)(mapEntry.getValue())));
    98102    }
    99 
     103    Collections.sort(freqList, Collections.reverseOrder());
    100104    StringBuffer buf = new StringBuffer();
    101     iter = freqOrder.keySet().iterator();
     105    iter = freqList.iterator();
    102106    while(iter.hasNext()) {
    103         Object next = iter.next();
    104         System.err.println("" + next);
    105         buf.append(freqOrder.get(next)).append(':').append(next).append(' ').append(' ');
     107        TermFrequency next = (TermFrequency) iter.next();
     108        buf.append(next.term).append(':').append(next.frequency).append(' ').append(' ');
    106109    }
    107110    return buf.toString();
    108111    }
    109 
     112 
    110113  /**
    111114   * Adds a {@link NzdlQueryHit NzdlQueryHit} to a result set.
Note: See TracChangeset for help on using the changeset viewer.