From dd14b19c26eb2c29b6b8ca514d606c44273f29b1 Mon Sep 17 00:00:00 2001 From: Michael Peter Christen Date: Fri, 8 Jun 2012 09:41:29 +0200 Subject: [PATCH] lazy initialization of block rank table ... only normal web search uses this. When interactive search or location search is used, the block rank is switched off --- htroot/index.java | 2 ++ htroot/yacyinteractive.java | 6 ++---- htroot/yacysearch.java | 2 -- htroot/yacysearch_location.java | 4 +--- source/net/yacy/search/ranking/BlockRank.java | 4 ++-- 5 files changed, 7 insertions(+), 11 deletions(-) diff --git a/htroot/index.java b/htroot/index.java index d9c077a6f..21911c18b 100644 --- a/htroot/index.java +++ b/htroot/index.java @@ -34,6 +34,7 @@ import net.yacy.cora.document.Classification.ContentDomain; import net.yacy.cora.protocol.RequestHeader; import net.yacy.search.Switchboard; import net.yacy.search.SwitchboardConstants; +import net.yacy.search.ranking.BlockRank; import de.anomic.server.serverObjects; import de.anomic.server.serverSwitch; @@ -42,6 +43,7 @@ public class index { public static serverObjects respond(final RequestHeader header, final serverObjects post, final serverSwitch env) { final Switchboard sb = (Switchboard) env; final serverObjects prop = new serverObjects(); + BlockRank.ensureLoaded(); // lazy initialization of block rank tables final String forwardTarget = sb.getConfig(SwitchboardConstants.INDEX_FORWARD, ""); if (forwardTarget.length() > 0) { diff --git a/htroot/yacyinteractive.java b/htroot/yacyinteractive.java index 845ca476b..1ca22f96d 100644 --- a/htroot/yacyinteractive.java +++ b/htroot/yacyinteractive.java @@ -9,7 +9,7 @@ // $LastChangedBy$ // // LICENSE -// +// // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or @@ -27,7 +27,6 @@ import net.yacy.cora.protocol.RequestHeader; import net.yacy.search.Switchboard; import net.yacy.search.SwitchboardConstants; -import net.yacy.search.ranking.BlockRank; import de.anomic.server.serverObjects; import de.anomic.server.serverSwitch; @@ -38,8 +37,7 @@ public class yacyinteractive { public static serverObjects respond(final RequestHeader header, serverObjects post, final serverSwitch env) { final Switchboard sb = (Switchboard) env; final serverObjects prop = new serverObjects(); - BlockRank.ensureLoaded(); - + prop.put("topmenu", sb.getConfigBool("publicTopmenu", true) ? 1 : 0); final String promoteSearchPageGreeting = (env.getConfigBool(SwitchboardConstants.GREETING_NETWORK_NAME, false)) ? diff --git a/htroot/yacysearch.java b/htroot/yacysearch.java index 31fe9d53a..182030eea 100644 --- a/htroot/yacysearch.java +++ b/htroot/yacysearch.java @@ -78,7 +78,6 @@ import net.yacy.search.query.AccessTracker; import net.yacy.search.query.QueryParams; import net.yacy.search.query.SearchEvent; import net.yacy.search.query.SearchEventCache; -import net.yacy.search.ranking.BlockRank; import net.yacy.search.ranking.RankingProfile; import de.anomic.data.DidYouMean; import de.anomic.data.UserDB; @@ -97,7 +96,6 @@ public class yacysearch { final Switchboard sb = (Switchboard) env; sb.localSearchLastAccess = System.currentTimeMillis(); - BlockRank.ensureLoaded(); final boolean searchAllowed = sb.getConfigBool("publicSearchpage", true) || sb.verifyAuthentication(header); diff --git a/htroot/yacysearch_location.java b/htroot/yacysearch_location.java index 2a4c1cbf4..68b3ac080 100644 --- a/htroot/yacysearch_location.java +++ b/htroot/yacysearch_location.java @@ -31,7 +31,6 @@ import net.yacy.document.LibraryProvider; import net.yacy.document.geolocalization.GeoLocation; import net.yacy.search.Switchboard; import net.yacy.search.SwitchboardConstants; -import net.yacy.search.ranking.BlockRank; import de.anomic.server.serverCore; import de.anomic.server.serverObjects; import de.anomic.server.serverSwitch; @@ -41,8 +40,7 @@ public class yacysearch_location { public static serverObjects respond(final RequestHeader header, final serverObjects post, final serverSwitch env) { final Switchboard sb = (Switchboard) env; final serverObjects prop = new serverObjects(); - BlockRank.ensureLoaded(); - + prop.put("kml", 0); if (header.get(HeaderFramework.CONNECTION_PROP_EXT, "").equals("kml") || diff --git a/source/net/yacy/search/ranking/BlockRank.java b/source/net/yacy/search/ranking/BlockRank.java index 4e4abeafc..f55d57e94 100644 --- a/source/net/yacy/search/ranking/BlockRank.java +++ b/source/net/yacy/search/ranking/BlockRank.java @@ -106,6 +106,7 @@ public class BlockRank { this.seed = seed; } + @Override public void run() { final ReferenceContainerCache partialIndex = Protocol.loadIDXHosts(this.seed); if (partialIndex == null || partialIndex.size() == 0) return; @@ -247,7 +248,7 @@ public class BlockRank { rankingPath = rankingPath0; count = count0; } - + public static void ensureLoaded() { if (ybrTables != null) return; ybrTables = new BinSearch[count]; @@ -296,7 +297,6 @@ public class BlockRank { * @return */ public static int ranking(final byte[] hash) { - ensureLoaded(); return ranking(hash, ybrTables); }