From 57a1007772238344b001d1df9cfa0f8b6a055418 Mon Sep 17 00:00:00 2001 From: luccioman Date: Fri, 15 Sep 2017 11:12:23 +0200 Subject: [PATCH] Added new graphical setting for browser JS/On demand results resorting. --- htroot/ConfigPortal_p.html | 10 ++++++++++ htroot/ConfigPortal_p.java | 22 ++++++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/htroot/ConfigPortal_p.html b/htroot/ConfigPortal_p.html index d0de8afaf..e19b024a1 100644 --- a/htroot/ConfigPortal_p.html +++ b/htroot/ConfigPortal_p.html @@ -52,6 +52,16 @@ do not show Advanced Search +
Remote results resorting
+
+ + +
+
Snippet Fetch Strategy & Link Verification
ideaSpeed up search results with this option! (use CACHEONLY or FALSE to switch off verification)
diff --git a/htroot/ConfigPortal_p.java b/htroot/ConfigPortal_p.java index 60576bebb..24ef68097 100644 --- a/htroot/ConfigPortal_p.java +++ b/htroot/ConfigPortal_p.java @@ -40,6 +40,7 @@ import net.yacy.data.WorkTables; import net.yacy.http.servlets.YaCyDefaultServlet; import net.yacy.search.Switchboard; import net.yacy.search.SwitchboardConstants; +import net.yacy.search.query.SearchEventCache; import net.yacy.server.serverObjects; import net.yacy.server.serverSwitch; import net.yacy.server.http.HTTPDFileHandler; @@ -54,6 +55,8 @@ public class ConfigPortal_p { /* Check this is a valid transaction */ TransactionManager.checkPostTransaction(header, post); + boolean cleanSearchCache = false; + if (post.containsKey("popup")) { final String popup = post.get("popup", "status"); if ("front".equals(popup)) { @@ -87,6 +90,12 @@ public class ConfigPortal_p { sb.setConfig("publicTopmenu", !post.containsKey("publicTopmenu") || post.getBoolean("publicTopmenu")); sb.setConfig(SwitchboardConstants.PUBLIC_SEARCHPAGE, !post.containsKey(SwitchboardConstants.PUBLIC_SEARCHPAGE) || post.getBoolean(SwitchboardConstants.PUBLIC_SEARCHPAGE)); sb.setConfig("search.options", post.getBoolean("search.options")); + + final boolean oldJsResort = sb.getConfigBool(SwitchboardConstants.SEARCH_JS_RESORT, SwitchboardConstants.SEARCH_JS_RESORT_DEFAULT); + final boolean newJsResort = post.getBoolean(SwitchboardConstants.SEARCH_JS_RESORT); + /* When this setting has changed we must clean up the search event cache as it affects how search results are retrieved */ + cleanSearchCache = oldJsResort != newJsResort; + sb.setConfig(SwitchboardConstants.SEARCH_JS_RESORT, newJsResort); sb.setConfig(SwitchboardConstants.GREEDYLEARNING_ACTIVE, post.getBoolean(SwitchboardConstants.GREEDYLEARNING_ACTIVE)); @@ -147,6 +156,14 @@ public class ConfigPortal_p { sb.setConfig(SwitchboardConstants.PUBLIC_SEARCHPAGE, config.getProperty(SwitchboardConstants.PUBLIC_SEARCHPAGE,"true")); sb.setConfig("search.navigation", config.getProperty("search.navigation","hosts,authors,namespace,topics")); sb.setConfig("search.options", config.getProperty("search.options","true")); + + final boolean oldJsResort = sb.getConfigBool(SwitchboardConstants.SEARCH_JS_RESORT, SwitchboardConstants.SEARCH_JS_RESORT_DEFAULT); + final boolean newJsResort = Boolean.parseBoolean(config.getProperty(SwitchboardConstants.SEARCH_JS_RESORT, String.valueOf(SwitchboardConstants.SEARCH_JS_RESORT_DEFAULT))); + /* When this setting has changed we must clean up the search event cache as it affects how search results are retrieved */ + cleanSearchCache = oldJsResort != newJsResort; + sb.setConfig(SwitchboardConstants.SEARCH_JS_RESORT, newJsResort); + + sb.setConfig(SwitchboardConstants.GREEDYLEARNING_ACTIVE, config.getProperty(SwitchboardConstants.GREEDYLEARNING_ACTIVE)); sb.setConfig(SwitchboardConstants.REMOTESEARCH_RESULT_STORE, config.getProperty(SwitchboardConstants.REMOTESEARCH_RESULT_STORE)); sb.setConfig(SwitchboardConstants.REMOTESEARCH_RESULT_STORE_MAXSIZE, config.getProperty(SwitchboardConstants.REMOTESEARCH_RESULT_STORE_MAXSIZE)); @@ -157,6 +174,10 @@ public class ConfigPortal_p { sb.setConfig("search.excludehosts", config.getProperty("search.excludehosts","")); sb.setConfig("search.excludehosth", config.getProperty("search.excludehosth","")); } + + if(cleanSearchCache) { + SearchEventCache.cleanupEvents(true); + } } /* Acquire a transaction token for the next POST form submission */ @@ -171,6 +192,7 @@ public class ConfigPortal_p { prop.put("publicTopmenu", sb.getConfigBool("publicTopmenu", false) ? 1 : 0); prop.put(SwitchboardConstants.PUBLIC_SEARCHPAGE, sb.getConfigBool(SwitchboardConstants.PUBLIC_SEARCHPAGE, false) ? 1 : 0); prop.put("search.options", sb.getConfigBool("search.options", false) ? 1 : 0); + prop.put(SwitchboardConstants.SEARCH_JS_RESORT, sb.getConfigBool(SwitchboardConstants.SEARCH_JS_RESORT, SwitchboardConstants.SEARCH_JS_RESORT_DEFAULT) ? 1 : 0); prop.put(SwitchboardConstants.GREEDYLEARNING_ACTIVE, sb.getConfigBool(SwitchboardConstants.GREEDYLEARNING_ACTIVE, false) ? 1 : 0); prop.put(SwitchboardConstants.GREEDYLEARNING_LIMIT_DOCCOUNT, sb.getConfig(SwitchboardConstants.GREEDYLEARNING_LIMIT_DOCCOUNT, "0"));