From 6b02b696b060943ac920ee9581fd66b73328b0db Mon Sep 17 00:00:00 2001 From: orbiter Date: Tue, 20 Sep 2011 19:41:44 +0000 Subject: [PATCH] - add number of search results to end of rss and json output to reflect latest status of retrieval - distinguish search access with different verify state in access of search cache git-svn-id: https://svn.berlios.de/svnroot/repos/yacy/trunk@7965 6c8d7289-2bf4-0310-a012-ef5d649a1542 --- htroot/yacysearchtrailer.java | 4 ++++ htroot/yacysearchtrailer.json | 3 ++- htroot/yacysearchtrailer.xml | 3 ++- source/de/anomic/search/QueryParams.java | 2 ++ source/de/anomic/server/serverObjects.java | 11 ++++++++++- .../cora/services/federated/yacy/CacheStrategy.java | 1 + 6 files changed, 21 insertions(+), 3 deletions(-) diff --git a/htroot/yacysearchtrailer.java b/htroot/yacysearchtrailer.java index 748fb5e4c..6f7e87d31 100644 --- a/htroot/yacysearchtrailer.java +++ b/htroot/yacysearchtrailer.java @@ -30,6 +30,7 @@ import net.yacy.cora.protocol.RequestHeader; import net.yacy.cora.ranking.ScoreMap; import net.yacy.document.LibraryProvider; import net.yacy.kelondro.util.EventTracker; +import net.yacy.kelondro.util.Formatter; import de.anomic.search.QueryParams; import de.anomic.search.SearchEvent; import de.anomic.search.SearchEventCache; @@ -239,6 +240,9 @@ public class yacysearchtrailer { prop.put("cat-location_query", theQuery.queryString(true)); prop.put("cat-location_queryenc", theQuery.queryString(true).replace(' ', '+')); } + + final int indexcount = theSearch.getRankingResult().getLocalIndexCount() - theSearch.getRankingResult().getMissCount() - theSearch.getRankingResult().getSortOutCount() + theSearch.getRankingResult().getRemoteIndexCount(); + prop.put("num-results_totalcount", Formatter.number(indexcount, true)); EventTracker.update(EventTracker.EClass.SEARCH, new ProfilingGraph.EventSearch(theQuery.id(true), SearchEvent.Type.FINALIZATION, "bottomline", 0, 0), false); diff --git a/htroot/yacysearchtrailer.json b/htroot/yacysearchtrailer.json index e14c5a800..379bdaef2 100644 --- a/htroot/yacysearchtrailer.json +++ b/htroot/yacysearchtrailer.json @@ -77,4 +77,5 @@ #{/element}# ] }#(/nav-topics)# - ] \ No newline at end of file + ], + "totalResults": "#[num-results_totalcount]#" \ No newline at end of file diff --git a/htroot/yacysearchtrailer.xml b/htroot/yacysearchtrailer.xml index 301411cfd..608338281 100644 --- a/htroot/yacysearchtrailer.xml +++ b/htroot/yacysearchtrailer.xml @@ -42,4 +42,5 @@ #(/nav-topics)# - +#[num-results_totalcount]# + diff --git a/source/de/anomic/search/QueryParams.java b/source/de/anomic/search/QueryParams.java index b40195aa0..5f8420e11 100644 --- a/source/de/anomic/search/QueryParams.java +++ b/source/de/anomic/search/QueryParams.java @@ -467,6 +467,8 @@ public final class QueryParams { context.append(this.constraint); context.append(asterisk); context.append(this.maxDistance); + context.append(asterisk); + context.append(this.snippetCacheStrategy == null ? "null" : this.snippetCacheStrategy.name()); if (anonymized) { this.idCacheAnon = context.toString(); } else { diff --git a/source/de/anomic/server/serverObjects.java b/source/de/anomic/server/serverObjects.java index 6d82edc0e..6394ddf48 100644 --- a/source/de/anomic/server/serverObjects.java +++ b/source/de/anomic/server/serverObjects.java @@ -160,6 +160,10 @@ public class serverObjects extends HashMap implements Cloneable * @return the modified String that was added to the map. */ public String putJSON(final String key, String value) { + return put(key, toJSON(value)); + } + + private static String toJSON(String value) { // value = value.replaceAll("\\", "\\\\"); value = patternDoublequote.matcher(value).replaceAll("'"); value = patternSlash.matcher(value).replaceAll("\\/"); @@ -168,7 +172,7 @@ public class serverObjects extends HashMap implements Cloneable value = patternNewline.matcher(value).replaceAll("\\r"); value = patternR.matcher(value).replaceAll("\\r"); value = patternT.matcher(value).replaceAll("\\t"); - return put(key, value); + return value; } public String putJSON(final String key, final byte[] value) { @@ -383,4 +387,9 @@ public class serverObjects extends HashMap implements Cloneable return param.toString(); } + public static void main(String[] args) { + String v = "ein \"zitat\""; + System.out.println(toJSON(v)); + } + } diff --git a/source/net/yacy/cora/services/federated/yacy/CacheStrategy.java b/source/net/yacy/cora/services/federated/yacy/CacheStrategy.java index 95bba3aab..2b1bb0d44 100644 --- a/source/net/yacy/cora/services/federated/yacy/CacheStrategy.java +++ b/source/net/yacy/cora/services/federated/yacy/CacheStrategy.java @@ -76,6 +76,7 @@ public enum CacheStrategy { if (name.equals("iffresh")) return IFFRESH; if (name.equals("ifexist")) return IFEXIST; if (name.equals("cacheonly")) return CACHEONLY; + if (name.equals("nifty")) return NIFTY; if (name.equals("true")) return IFEXIST; if (name.equals("false")) return null; // if this cache strategy is assigned as query attribute, null means "do not create a snippet" return null;