diff --git a/htroot/CrawlProfileEditor_p.java b/htroot/CrawlProfileEditor_p.java index a24e8f9e3..ab1eb894b 100644 --- a/htroot/CrawlProfileEditor_p.java +++ b/htroot/CrawlProfileEditor_p.java @@ -138,7 +138,7 @@ public class CrawlProfileEditor_p { tee = (eentry) it.next(); String cval = (String) selentry.map().get(tee.name); String val = (tee.type == eentry.BOOLEAN) ? Boolean.toString(post.containsKey(tee.name)) : post.get(tee.name, cval); - if (!cval.equals(val)) selentry.changeEntry(tee.name, val); + if (!cval.equals(val)) sb.profiles.changeEntry(selentry, tee.name, val); } } catch (IOException ex) { prop.put("error", 1); diff --git a/htroot/DetailedSearch.html b/htroot/DetailedSearch.html deleted file mode 100644 index 25746082e..000000000 --- a/htroot/DetailedSearch.html +++ /dev/null @@ -1,96 +0,0 @@ - - - - YaCy '#[clientname]#': Detailed Search - #%env/templates/metas.template%# - - - #%env/templates/header.template%# -

Detailed Search

- #(num-results)# - :: -

#[linkcount]# results from #[orderedcount]# ordered links from #[filteredcount]# filtered links of a total number of #[totalcount]# known.

- #(/num-results)# -
-
- - -
-
- Query Attributes -
-
-
-
-
-
-
-
-
-
-
-
-
-
- Pre-Ranking -
#{attrPre}# -
:
-
#{select}# - #{/select}# - #[value]# -
#{/attrPre}# -
-
-
- Post-Ranking -
#{attrPost}# -
-
#{select}# - #{/select}# - #[value]# -
#{/attrPost}# -
-
-
- - -
-
- - - #(type)# - #(excluded)# - :: -

The following words are stop-words and had been excluded from the search: #[stopwords]#.

- #(/excluded)# - #(combine)# - :: -

Topwords (to refine search): - #{words}# - #[word]# - #{/words}# -

- #(/combine)# - - #{results}# - -
- #(authorized)#:: -
- delete -
- #(/authorized)# -

#[description]#

- #(snippet)#::

#[text]#

#(/snippet)# -

#[urlname]#

-

#[date]# | YBR-#[ybr]# | Info

-

#[rankingprops]#

-
- - #{/results}# - #(/type)# - - - #%env/templates/footer.template%# - - diff --git a/htroot/DetailedSearch.java b/htroot/DetailedSearch.java deleted file mode 100644 index 0e523fd64..000000000 --- a/htroot/DetailedSearch.java +++ /dev/null @@ -1,378 +0,0 @@ - -// DetailedSearch.java -// ----------------------- -// part of the AnomicHTTPD caching proxy -// (C) by Michael Peter Christen; mc@anomic.de -// first published on http://www.anomic.de -// Frankfurt, Germany, 2006 -// -// $LastChangedDate: 2006-02-05 16:38:31 +0100 (So, 05 Feb 2006) $ -// $LastChangedRevision: 1548 $ -// $LastChangedBy: orbiter $ -// -// 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 -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// Using this software in any meaning (reading, learning, copying, compiling, -// running) means that you agree that the Author(s) is (are) not responsible -// for cost, loss of data or any harm that may be caused directly or indirectly -// by usage of this softare or this documentation. The usage of this software -// is on your own risk. The installation and usage (starting/running) of this -// software may allow other people or application to access your computer and -// any attached devices and is highly dependent on the configuration of the -// software which must be done by the user of the software; the author(s) is -// (are) also not responsible for proper configuration and usage of the -// software, even if provoked by documentation provided together with -// the software. -// -// Any changes to this file according to the GPL as documented in the file -// gpl.txt aside this file in the shipment you received can be done to the -// lines that follows this copyright notice here, but changes must not be -// done inside the copyright notive above. A re-distribution must contain -// the intact and unchanged copyright notice. -// Contributions and changes to the program code must be marked as such. -// -// You must compile this file with -// javac -classpath .:../classes index.java -// if the shell's current path is HTROOT - -import java.io.UnsupportedEncodingException; -import java.net.URLEncoder; -import java.util.HashMap; -import java.util.Iterator; -import java.util.TreeSet; -import java.util.Map; - -import de.anomic.http.httpHeader; -import de.anomic.kelondro.kelondroMSetTools; -import de.anomic.net.URL; -import de.anomic.plasma.plasmaCondenser; -import de.anomic.plasma.plasmaSearchPreOrder; -import de.anomic.plasma.plasmaSearchQuery; -import de.anomic.plasma.plasmaSearchRankingProfile; -import de.anomic.plasma.plasmaSearchTimingProfile; -import de.anomic.plasma.plasmaSwitchboard; -import de.anomic.plasma.plasmaURL; -import de.anomic.plasma.plasmaSearchResults; -import de.anomic.server.serverCore; -import de.anomic.server.serverObjects; -import de.anomic.server.serverSwitch; -import de.anomic.yacy.yacyCore; -import de.anomic.yacy.yacyNewsPool; -import de.anomic.yacy.yacySeed; -import de.anomic.tools.crypt; -import de.anomic.tools.nxTools; - -public class DetailedSearch { - - private static final int maxRankingRange = 16; - - private static final HashMap rankingParameters = new HashMap(); - static { - rankingParameters.put(plasmaSearchRankingProfile.APPAUTHOR, "Appearance In Author"); - rankingParameters.put(plasmaSearchRankingProfile.APPDESCR, "Appearance In Description"); - rankingParameters.put(plasmaSearchRankingProfile.APPEMPH, "Appearance In Emphasized Text"); - rankingParameters.put(plasmaSearchRankingProfile.APPREF, "Appearance In Reference"); - rankingParameters.put(plasmaSearchRankingProfile.APPTAGS, "Appearance In Tags"); - rankingParameters.put(plasmaSearchRankingProfile.APPURL, "Appearance In URL"); - rankingParameters.put(plasmaSearchRankingProfile.CATHASAPP, "Category App, Appearance"); - rankingParameters.put(plasmaSearchRankingProfile.CATHASAUDIO, "Category Audio Appearance"); - rankingParameters.put(plasmaSearchRankingProfile.CATHASIMAGE, "Category Image Appearance"); - rankingParameters.put(plasmaSearchRankingProfile.CATHASVIDEO, "Category Video Appearance"); - rankingParameters.put(plasmaSearchRankingProfile.CATINDEXOF, "Category Index Page"); - rankingParameters.put(plasmaSearchRankingProfile.DATE, "Date"); - rankingParameters.put(plasmaSearchRankingProfile.DESCRCOMPINTOPLIST, "Description Comp. Appears In Toplist"); - rankingParameters.put(plasmaSearchRankingProfile.DOMLENGTH, "Domain Length"); - rankingParameters.put(plasmaSearchRankingProfile.HITCOUNT, "Hit Count"); - rankingParameters.put(plasmaSearchRankingProfile.LLOCAL, "Links To Local Domain"); - rankingParameters.put(plasmaSearchRankingProfile.LOTHER, "Links To Other Domain"); - rankingParameters.put(plasmaSearchRankingProfile.PHRASESINTEXT, "Phrases In Text"); - rankingParameters.put(plasmaSearchRankingProfile.POSINTEXT, "Position In Text"); - rankingParameters.put(plasmaSearchRankingProfile.POSOFPHRASE, "Position Of Phrase"); - rankingParameters.put(plasmaSearchRankingProfile.PREFER, "Application Of Prefer Pattern"); - rankingParameters.put(plasmaSearchRankingProfile.URLCOMPINTOPLIST, "URL Component Appears In Toplist"); - rankingParameters.put(plasmaSearchRankingProfile.URLCOMPS, "URL Components"); - rankingParameters.put(plasmaSearchRankingProfile.URLLENGTH, "URL Length"); - rankingParameters.put(plasmaSearchRankingProfile.WORDDISTANCE, "Word Distance"); - rankingParameters.put(plasmaSearchRankingProfile.WORDSINTEXT, "Words In Text"); - rankingParameters.put(plasmaSearchRankingProfile.WORDSINTITLE, "Words In Title"); - rankingParameters.put(plasmaSearchRankingProfile.YBR, "YaCy Block Rank"); - } - - private static serverObjects defaultValues() { - final serverObjects prop = new serverObjects(); - prop.put("search", ""); - prop.put("num-results", 0); - prop.put("excluded", 0); - prop.put("combine", 0); - prop.put("resultbottomline", 0); - prop.put("localCount", 10); - prop.put("localWDist", 999); - //prop.put("globalChecked", "checked"); - prop.put("globalChecked", 0); - prop.put("postsortChecked", 1); - prop.put("localTime", 6); - prop.put("results", ""); - prop.put("urlmaskoptions", 0); - prop.put("urlmaskoptions_urlmaskfilter", ".*"); - prop.put("jumpToCursor", 1); - return prop; - } - - private static void putRanking(final serverObjects prop, final plasmaSearchRankingProfile rankingProfile, final String prefix) { - putRanking(prop, rankingProfile.preToExternalMap(prefix), prefix, "Pre"); - putRanking(prop, rankingProfile.postToExternalMap(prefix), prefix, "Post"); - } - - private static void putRanking(final serverObjects prop, final Map ranking, final String prefix, final String attrExtension) { - prop.put("attr" + attrExtension, ranking.size()); - Iterator it = ranking.keySet().iterator(); - String key; - int i, j = 0; - while (it.hasNext()) { - key = (String)it.next(); - prop.put("attr" + attrExtension + "_" + j + "_name", rankingParameters.get(key.substring(prefix.length()))); - prop.put("attr" + attrExtension + "_" + j + "_nameorg", key); - prop.put("attr" + attrExtension + "_" + j + "_select", maxRankingRange); - for (i=0; i 2) && (querystring.charAt(0) == '"') && (querystring.charAt(querystring.length() - 1) == '"')) { - querystring = querystring.substring(1, querystring.length() - 1).trim(); - wdist = 1; - } - if (sb.facilityDB != null) try { sb.facilityDB.update("zeitgeist", querystring, post); } catch (Exception e) {} - final TreeSet[] query = plasmaSearchQuery.cleanQuery(querystring); - // filter out stopwords - final TreeSet filtered = kelondroMSetTools.joinConstructive(query[0], plasmaSwitchboard.stopwords); - if (filtered.size() > 0) { - kelondroMSetTools.excludeDestructive(query[0], plasmaSwitchboard.stopwords); - } - - boolean authenticated = sb.adminAuthenticated(header) >= 2; - // if a minus-button was hit, remove a special reference first - if (post.containsKey("deleteref")) { - if (!sb.verifyAuthentication(header, true)) { - final serverObjects prop = new serverObjects(); - prop.put("AUTHENTICATE", "admin log-in"); // force log-in - return prop; - } - final String delHash = post.get("deleteref", ""); - sb.wordIndex.removeWordReferences(query[0], delHash); - } - - // prepare search order - final int count = Integer.parseInt(post.get("localCount", "10")); - final long searchtime = 1000 * Long.parseLong(post.get("localTime", "10")); - final boolean yacyonline = ((yacyCore.seedDB != null) && - (yacyCore.seedDB.mySeed != null) && - (yacyCore.seedDB.mySeed.getPublicAddress() != null)); - - String urlmask = ""; - if (post.containsKey("urlmask") && post.get("urlmask").equals("no")) { - urlmask = ".*"; - } else { - urlmask = (post.containsKey("urlmaskfilter")) ? (String) post.get("urlmaskfilter") : ".*"; - } - - // do the search - plasmaSearchQuery thisSearch = new plasmaSearchQuery(querystring, plasmaCondenser.words2hashes(query[0]), plasmaCondenser.words2hashes(query[1]), wdist, "", plasmaSearchQuery.CONTENTDOM_TEXT, count, searchtime, urlmask, - ((global) && (yacyonline) && (!(env.getConfig("last-search","").equals(querystring)))) ? plasmaSearchQuery.SEARCHDOM_GLOBALDHT : plasmaSearchQuery.SEARCHDOM_LOCAL, - "", 20, plasmaSearchQuery.catchall_constraint); - plasmaSearchRankingProfile localRanking = new plasmaSearchRankingProfile("local", post.toString()); - plasmaSearchTimingProfile localTiming = new plasmaSearchTimingProfile(4 * thisSearch.maximumTime / 10, thisSearch.wantedResults); - plasmaSearchTimingProfile remoteTiming = new plasmaSearchTimingProfile(6 * thisSearch.maximumTime / 10, thisSearch.wantedResults); - - final serverObjects prop = new serverObjects();//sb.searchFromLocal(thisSearch, localRanking, localTiming, remoteTiming, postsort, (String) header.get("CLIENTIP")); - plasmaSearchResults results = sb.searchFromLocal(thisSearch, localRanking, localTiming, remoteTiming, postsort, (String) header.get("CLIENTIP")); - //prop.put("references", 0); - URL wordURL=null; - prop.put("num-results_totalcount", results.getTotalcount()); - prop.put("num-results_filteredcount", results.getFilteredcount()); - prop.put("num-results_orderedcount", results.getOrderedcount()); - prop.put("num-results_linkcount", results.getLinkcount()); - prop.put("type_results", 0); - if(results.numResults()!=0){ - //we've got results - prop.put("num-results_totalcount", results.getTotalcount()); - prop.put("num-results_filteredcount", results.getFilteredcount()); - prop.put("num-results_orderedcount", Integer.toString(results.getOrderedcount())); //why toString? - prop.put("num-results_globalresults", results.getGlobalresults()); - for(int i=0;i 0){ - prop.put("excluded", 1); - prop.put("excluded_stopwords", filtered.toString()); - } else { - prop.put("excluded", 0); - } - - if (prop == null || prop.size() == 0) { - prop.put("num-results", 0); - } else { - final Object[] references = (Object[]) prop.get("type_references", new String[0]); - prop.put("num-results", 1); - int hintcount = references.length; - if (hintcount > 0) { - if (hintcount > 16) { hintcount = 16; } - prop.put("type_combine", 1); - String word; - for (int i = 0; i < hintcount; i++) { - word = (String) references[i]; - if (word != null) { - prop.put("type_combine_words_" + i + "_word", word); - prop.put("type_combine_words_" + i + "_newsearch", post.get("search", "").replace(' ', '+') + "+" + word); - prop.put("type_combine_words_" + i + "_count", count); - prop.put("type_combine_words_" + i + "_ranking", localRanking.toExternalURLGet("local").toString()); - prop.put("type_combine_words_" + i + "_resource", ((global) ? "global" : "local")); - prop.put("type_combine_words_" + i + "_time", (searchtime / 1000)); - } - prop.put("type_combine_words", i); - } - } - } - - if (urlmask.equals(".*")) { - prop.put("urlmaskoptions", 0); - } else { - prop.put("urlmaskoptions", 1); - } - - // if user is not authenticated, he may not vote for URLs - int linkcount = Integer.parseInt(prop.get("num-results_linkcount", "0")); - for (int i=0; i 0) ? 0 : 1); - prop.put("urlmaskoptions_urlmaskfilter", urlmask); - prop.put("type", "0"); - prop.put("localCount", count); - prop.put("localWDist", wdist); - prop.put("globalChecked", (global) ? 1 : 0); - prop.put("postsortChecked", (postsort) ? 1 : 0); - prop.put("localTime", searchtime/1000); - prop.put("search", post.get("search", "")); - prop.putAll(localRanking.toExternalMap("local")); - - // 'enrich search' variables - prop.put("num-results_former", post.get("search", "")); - prop.put("num-results_time", searchtime / 1000); - prop.put("num-results_count", count); - prop.put("num-results_resource", (global) ? "global" : "local"); - prop.put("num-results_ranking", localRanking.toExternalURLGet("local").toString()); - - // return rewrite properties - prop.putASIS("promoteSearchPageGreeting", env.getConfig("promoteSearchPageGreeting", "")); - - // adding some additional properties needed for the rss feed - String hostName = (String) header.get("Host","localhost"); - if (hostName.indexOf(":") == -1) hostName += ":" + serverCore.getPortNr(env.getConfig("port","8080")); - prop.put("rssYacyImageURL","http://" + hostName + "/env/grafics/yacy.gif"); - - return prop; - } - -} diff --git a/htroot/ProxyIndexingMonitor_p.java b/htroot/ProxyIndexingMonitor_p.java index 5bf82335b..92589bbc7 100644 --- a/htroot/ProxyIndexingMonitor_p.java +++ b/htroot/ProxyIndexingMonitor_p.java @@ -117,11 +117,11 @@ public class ProxyIndexingMonitor_p { prop.put("info", 1); //delete DATA/PLASMADB/crawlProfiles0.db } else { try { - sb.defaultProxyProfile.changeEntry("generalDepth", Integer.toString(newProxyPrefetchDepth)); - sb.defaultProxyProfile.changeEntry("storeHTCache", (proxyStoreHTCache) ? "true": "false"); - sb.defaultProxyProfile.changeEntry("remoteIndexing",proxyIndexingRemote ? "true":"false"); - sb.defaultProxyProfile.changeEntry("indexText",proxyIndexingLocalText ? "true":"false"); - sb.defaultProxyProfile.changeEntry("indexMedia",proxyIndexingLocalMedia ? "true":"false"); + sb.profiles.changeEntry(sb.defaultProxyProfile, "generalDepth", Integer.toString(newProxyPrefetchDepth)); + sb.profiles.changeEntry(sb.defaultProxyProfile, "storeHTCache", (proxyStoreHTCache) ? "true": "false"); + sb.profiles.changeEntry(sb.defaultProxyProfile, "remoteIndexing",proxyIndexingRemote ? "true":"false"); + sb.profiles.changeEntry(sb.defaultProxyProfile, "indexText",proxyIndexingLocalText ? "true":"false"); + sb.profiles.changeEntry(sb.defaultProxyProfile, "indexMedia",proxyIndexingLocalMedia ? "true":"false"); prop.put("info", 2);//new proxyPrefetchdepth prop.put("info_message", newProxyPrefetchDepth); diff --git a/htroot/Ranking_p.html b/htroot/Ranking_p.html new file mode 100644 index 000000000..1bd01d016 --- /dev/null +++ b/htroot/Ranking_p.html @@ -0,0 +1,39 @@ + + + + YaCy '#[clientname]#': Ranking Configuration + #%env/templates/metas.template%# + + + #%env/templates/header.template%# +

Ranking Configuration

+
+
+ Pre-Ranking +
#{attrPre}# +
:
+
#{select}# + #{/select}# + #[value]# +
#{/attrPre}# +
+
+
+ Post-Ranking +
#{attrPost}# +
+
#{select}# + #{/select}# + #[value]# +
#{/attrPost}# +
+
+
+ + +
+
+ + #%env/templates/footer.template%# + + diff --git a/htroot/Ranking_p.java b/htroot/Ranking_p.java new file mode 100644 index 000000000..a362894b3 --- /dev/null +++ b/htroot/Ranking_p.java @@ -0,0 +1,167 @@ +// Ranking_p.java +// -------------- +// (C) 2006 by Michael Peter Christen; mc@yacy.net, Frankfurt a. M., Germany +// first published 05.02.2006 on http://yacy.net +// +// This is a part of YaCy, a peer-to-peer based web search engine +// +// $LastChangedDate: 2007-07-19 22:11:48 +0000 (Do, 19 Jul 2007) $ +// $LastChangedRevision: 3995 $ +// $LastChangedBy: orbiter $ +// +// 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 +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; + +import de.anomic.http.httpHeader; +import de.anomic.plasma.plasmaSearchRankingProfile; +import de.anomic.plasma.plasmaSwitchboard; +import de.anomic.server.serverObjects; +import de.anomic.server.serverSwitch; +import de.anomic.tools.crypt; + +public class Ranking_p { + + private static final int maxRankingRange = 16; + + private static final HashMap rankingParameters = new HashMap(); + static { + rankingParameters.put(plasmaSearchRankingProfile.APPAUTHOR, "Appearance In Author"); + rankingParameters.put(plasmaSearchRankingProfile.APPDESCR, "Appearance In Description"); + rankingParameters.put(plasmaSearchRankingProfile.APPEMPH, "Appearance In Emphasized Text"); + rankingParameters.put(plasmaSearchRankingProfile.APPREF, "Appearance In Reference"); + rankingParameters.put(plasmaSearchRankingProfile.APPTAGS, "Appearance In Tags"); + rankingParameters.put(plasmaSearchRankingProfile.APPURL, "Appearance In URL"); + rankingParameters.put(plasmaSearchRankingProfile.CATHASAPP, "Category App, Appearance"); + rankingParameters.put(plasmaSearchRankingProfile.CATHASAUDIO, "Category Audio Appearance"); + rankingParameters.put(plasmaSearchRankingProfile.CATHASIMAGE, "Category Image Appearance"); + rankingParameters.put(plasmaSearchRankingProfile.CATHASVIDEO, "Category Video Appearance"); + rankingParameters.put(plasmaSearchRankingProfile.CATINDEXOF, "Category Index Page"); + rankingParameters.put(plasmaSearchRankingProfile.DATE, "Date"); + rankingParameters.put(plasmaSearchRankingProfile.DESCRCOMPINTOPLIST, "Description Comp. Appears In Toplist"); + rankingParameters.put(plasmaSearchRankingProfile.DOMLENGTH, "Domain Length"); + rankingParameters.put(plasmaSearchRankingProfile.HITCOUNT, "Hit Count"); + rankingParameters.put(plasmaSearchRankingProfile.LLOCAL, "Links To Local Domain"); + rankingParameters.put(plasmaSearchRankingProfile.LOTHER, "Links To Other Domain"); + rankingParameters.put(plasmaSearchRankingProfile.PHRASESINTEXT, "Phrases In Text"); + rankingParameters.put(plasmaSearchRankingProfile.POSINTEXT, "Position In Text"); + rankingParameters.put(plasmaSearchRankingProfile.POSOFPHRASE, "Position Of Phrase"); + rankingParameters.put(plasmaSearchRankingProfile.PREFER, "Application Of Prefer Pattern"); + rankingParameters.put(plasmaSearchRankingProfile.URLCOMPINTOPLIST, "URL Component Appears In Toplist"); + rankingParameters.put(plasmaSearchRankingProfile.URLCOMPS, "URL Components"); + rankingParameters.put(plasmaSearchRankingProfile.URLLENGTH, "URL Length"); + rankingParameters.put(plasmaSearchRankingProfile.WORDDISTANCE, "Word Distance"); + rankingParameters.put(plasmaSearchRankingProfile.WORDSINTEXT, "Words In Text"); + rankingParameters.put(plasmaSearchRankingProfile.WORDSINTITLE, "Words In Title"); + rankingParameters.put(plasmaSearchRankingProfile.YBR, "YaCy Block Rank"); + } + + private static serverObjects defaultValues() { + final serverObjects prop = new serverObjects(); + prop.put("search", ""); + prop.put("num-results", 0); + prop.put("excluded", 0); + prop.put("combine", 0); + prop.put("resultbottomline", 0); + prop.put("localCount", 10); + prop.put("localWDist", 999); + //prop.put("globalChecked", "checked"); + prop.put("globalChecked", 0); + prop.put("postsortChecked", 1); + prop.put("localTime", 6); + prop.put("results", ""); + prop.put("urlmaskoptions", 0); + prop.put("urlmaskoptions_urlmaskfilter", ".*"); + prop.put("jumpToCursor", 1); + return prop; + } + + private static void putRanking(serverObjects prop, plasmaSearchRankingProfile rankingProfile, String prefix) { + putRanking(prop, rankingProfile.preToExternalMap(prefix), prefix, "Pre"); + putRanking(prop, rankingProfile.postToExternalMap(prefix), prefix, "Post"); + } + + private static void putRanking(serverObjects prop, Map map, String prefix, String attrExtension) { + prop.put("attr" + attrExtension, map.size()); + Iterator it = map.keySet().iterator(); + String key; + int i, j = 0; + while (it.hasNext()) { + key = (String)it.next(); + prop.put("attr" + attrExtension + "_" + j + "_name", rankingParameters.get(key.substring(prefix.length()))); + prop.put("attr" + attrExtension + "_" + j + "_nameorg", key); + prop.put("attr" + attrExtension + "_" + j + "_select", maxRankingRange); + for (i=0; iSearch & Browse diff --git a/source/de/anomic/plasma/plasmaCrawlProfile.java b/source/de/anomic/plasma/plasmaCrawlProfile.java index 089b22d00..b4e8352b9 100644 --- a/source/de/anomic/plasma/plasmaCrawlProfile.java +++ b/source/de/anomic/plasma/plasmaCrawlProfile.java @@ -58,8 +58,9 @@ import de.anomic.server.serverCodings; public class plasmaCrawlProfile { + private static HashMap domsCache = new HashMap(); + private kelondroMapObjects profileTable; - private HashMap domsCache; private File profileTableFile; private long preloadTime; @@ -71,7 +72,6 @@ public class plasmaCrawlProfile { profileTableFile.getParentFile().mkdirs(); kelondroDyn dyn = new kelondroDyn(profileTableFile, true, true, preloadTime, crawlProfileHandleLength, 2000, '#', kelondroNaturalOrder.naturalOrder, true, false, true); profileTable = new kelondroMapObjects(dyn, 500); - domsCache = new HashMap(); } private void resetDatabase() { @@ -208,8 +208,13 @@ public class plasmaCrawlProfile { if (m == null) return null; return new entry(m); } + + public void changeEntry(entry e, String propName, String newValue) throws IOException { + e.mem.put(propName, newValue); + profileTable.set(e.handle(), e.mem); + } - public class DomProfile { + public static class DomProfile { public String referrer; public int depth, count; @@ -226,7 +231,7 @@ public class plasmaCrawlProfile { } - public class entry { + public static class entry { // this is a simple record structure that hold all properties of a single crawl start public static final String HANDLE = "handle"; @@ -413,10 +418,6 @@ public class plasmaCrawlProfile { String r = (String) mem.get(XPSTOPW); if (r == null) return false; else return (r.equals(Boolean.TRUE.toString())); } - public void changeEntry(String propName, String newValue) throws IOException { - mem.put(propName, newValue); - profileTable.set(handle(), mem); - } public void domInc(String domain, String referrer, int depth) { synchronized (domain.intern()) { DomProfile dp = (DomProfile) doms.get(domain); diff --git a/source/de/anomic/urlRedirector/urlRedirectord.java b/source/de/anomic/urlRedirector/urlRedirectord.java index 8c0ae5388..4a36021de 100644 --- a/source/de/anomic/urlRedirector/urlRedirectord.java +++ b/source/de/anomic/urlRedirector/urlRedirectord.java @@ -152,7 +152,7 @@ public class urlRedirectord implements serverHandler { if (pos != -1) { String newDepth = line.substring(pos).trim(); this.theLogger.logFine("Changing crawling depth to '" + newDepth + "'."); - profile.changeEntry("generalDepth",newDepth); + switchboard.profiles.changeEntry(profile, "generalDepth",newDepth); } outputWriter.print("\r\n"); outputWriter.flush(); @@ -161,7 +161,7 @@ public class urlRedirectord implements serverHandler { if (pos != -1) { String newValue = line.substring(pos).trim(); this.theLogger.logFine("Changing crawl dynamic setting to '" + newValue + "'"); - profile.changeEntry("crawlingQ",newValue); + switchboard.profiles.changeEntry(profile, "crawlingQ",newValue); } outputWriter.print("\r\n"); outputWriter.flush(); diff --git a/source/de/anomic/xml/rssReader.java b/source/de/anomic/xml/rssReader.java index 711175922..313f9408d 100644 --- a/source/de/anomic/xml/rssReader.java +++ b/source/de/anomic/xml/rssReader.java @@ -1,3 +1,29 @@ +// rssReader.java +// (C) 2007 by Michael Peter Christen; mc@yacy.net, Frankfurt a. M., Germany +// first published 16.07.2007 on http://yacy.net +// +// This is a part of YaCy, a peer-to-peer based web search engine +// +// $LastChangedDate: 2006-04-02 22:40:07 +0200 (So, 02 Apr 2006) $ +// $LastChangedRevision: 1986 $ +// $LastChangedBy: orbiter $ +// +// 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 +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + package de.anomic.xml; import java.io.InputStream;