Skip to content

Commit

Permalink
Display the local search word statistic in alphabetic order
Browse files Browse the repository at this point in the history
  • Loading branch information
reger committed Mar 19, 2017
1 parent 3dd23c1 commit f05976c
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 9 deletions.
12 changes: 5 additions & 7 deletions htroot/AccessTracker_p.java
Expand Up @@ -40,6 +40,7 @@
import net.yacy.cora.protocol.Domains;
import net.yacy.cora.protocol.RequestHeader;
import net.yacy.cora.sorting.ConcurrentScoreMap;
import net.yacy.cora.sorting.OrderedScoreMap;
import net.yacy.cora.sorting.ScoreMap;
import net.yacy.cora.util.CommonPattern;
import net.yacy.cora.util.ConcurrentLog;
Expand Down Expand Up @@ -273,7 +274,7 @@ public static serverObjects respond(final RequestHeader header, final serverObje
Date toDate = new Date();
Date fromDate = new Date(toDate.getTime() - 7 * 24 * 3600 * 1000); // 7 Days earlier
List<EventTracker.Event> evList = AccessTracker.readLog(AccessTracker.getDumpFile(), fromDate, toDate);
ScoreMap<String> topicNavigator = new ConcurrentScoreMap<String>();
OrderedScoreMap<String> topicNavigator = new OrderedScoreMap<String>(String.CASE_INSENSITIVE_ORDER);
for (EventTracker.Event ev : evList) {
String qs = ev.payload.toString();
if (qs.startsWith("qs ")) { // currently only raw querystring "qs" lines are included
Expand All @@ -290,22 +291,19 @@ public static serverObjects respond(final RequestHeader header, final serverObje
prop.put("page_nav-topics", "0");
} else {
// topics navigator
final int TOPWORDS_MAXCOUNT = 20;
final int TOPWORDS_MAXCOUNT = 25;
final int TOPWORDS_MINSIZE = 9;
final int TOPWORDS_MAXSIZE = 24;
int count;
prop.put("page_nav-topics", "1");
String name;
int i = 0;
int maxcount = 0;
Iterator<String> navigatorIterator = topicNavigator.keys(false);
int maxcount = topicNavigator.getMaxScore();
Iterator<String> navigatorIterator = topicNavigator.iterator();

while (i < TOPWORDS_MAXCOUNT && navigatorIterator.hasNext()) {
name = navigatorIterator.next();
count = topicNavigator.get(name);
if (maxcount == 0) {
maxcount = count;
}
prop.put("page_nav-topics_element_" + i + "_on", 1);
prop.put("page_nav-topics_element_" + i + "_name", name);
prop.put("page_nav-topics_element_" + i + "_count", count);
Expand Down
20 changes: 18 additions & 2 deletions source/net/yacy/cora/sorting/OrderedScoreMap.java
Expand Up @@ -227,12 +227,28 @@ private int getMinScore() {
int minScore = Integer.MAX_VALUE;
synchronized (this.map) {
for (final Map.Entry<E, AtomicInteger> entry: this.map.entrySet()) if (entry.getValue().intValue() < minScore) {
minScore = entry.getValue().intValue();
minScore = entry.getValue().intValue();
}
}
}
return minScore;
}

/**
* @return largest score value
*/
public int getMaxScore() {
if (this.map.isEmpty()) {
return -1;
}
int maxScore = Integer.MIN_VALUE;
for (final Map.Entry<E, AtomicInteger> entry : this.map.entrySet()) {
if (entry.getValue().intValue() > maxScore) {
maxScore = entry.getValue().intValue();
}
}
return maxScore;
}

@Override
public Iterator<E> keys(final boolean up) {
synchronized (this.map) {
Expand Down

0 comments on commit f05976c

Please sign in to comment.