diff --git a/htroot/yacy/search.java b/htroot/yacy/search.java index 38f0c2ed7..4c9f7a984 100644 --- a/htroot/yacy/search.java +++ b/htroot/yacy/search.java @@ -28,6 +28,7 @@ // javac -classpath .:../../Classes search.java // if the shell's current path is htroot/yacy +import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.TreeSet; @@ -36,9 +37,11 @@ import de.anomic.http.httpHeader; import de.anomic.kelondro.kelondroBase64Order; import de.anomic.kelondro.kelondroBitfield; import de.anomic.index.indexContainer; +import de.anomic.net.natLib; import de.anomic.plasma.plasmaURL; import de.anomic.index.indexURLEntry; import de.anomic.plasma.plasmaCondenser; +import de.anomic.plasma.plasmaSearchEvent; import de.anomic.plasma.plasmaSearchPreOrder; import de.anomic.plasma.plasmaSearchQuery; import de.anomic.plasma.plasmaSearchRankingProfile; @@ -259,16 +262,13 @@ public final class search { // prepare search statistics Long trackerHandle = new Long(System.currentTimeMillis()); String client = (String) header.get("CLIENTIP"); - /* - HashMap searchProfile = theSearch.resultProfile(); - searchProfile.put("resulttime", new Long(System.currentTimeMillis() - timestamp)); - searchProfile.put("resultcount", new Integer(joincount)); + HashMap searchProfile = plasmaSearchEvent.resultProfile(squery, joincount, System.currentTimeMillis() - timestamp); searchProfile.put("host", client); yacySeed remotepeer = yacyCore.seedDB.lookupByIP(natLib.getInetAddress(client), true, false, false); searchProfile.put("peername", (remotepeer == null) ? "unknown" : remotepeer.getName()); searchProfile.put("time", trackerHandle); sb.remoteSearches.add(searchProfile); - */ + TreeSet handles = (TreeSet) sb.remoteSearchTracker.get(client); if (handles == null) handles = new TreeSet(); handles.add(trackerHandle); diff --git a/source/de/anomic/plasma/plasmaSearchEvent.java b/source/de/anomic/plasma/plasmaSearchEvent.java index 227eb2be9..b310a3313 100644 --- a/source/de/anomic/plasma/plasmaSearchEvent.java +++ b/source/de/anomic/plasma/plasmaSearchEvent.java @@ -91,17 +91,22 @@ public final class plasmaSearchEvent { } public HashMap resultProfile() { + // generate statistics about search: query, time, etc + return resultProfile(this.query, this.searchcount, this.searchtime); + } + + public static HashMap resultProfile(plasmaSearchQuery query, int searchcount, long searchtime) { // generate statistics about search: query, time, etc HashMap r = new HashMap(); r.put("queryhashes", query.queryHashes); r.put("querystring", query.queryString); r.put("querycount", new Integer(query.wantedResults)); r.put("querytime", new Long(query.maximumTime)); - r.put("resultcount", new Integer(this.searchcount)); - r.put("resulttime", new Long(this.searchtime)); + r.put("resultcount", new Integer(searchcount)); + r.put("resulttime", new Long(searchtime)); return r; } - + public plasmaSearchPostOrder search() { // combine all threads