author navigator can be switched off

pull/1/head
Michael Peter Christen 13 years ago
parent 558ab7bd4e
commit e8d24fd802

@ -533,16 +533,16 @@ public class yacysearch {
String authorhash = null; String authorhash = null;
if ( authori >= 0 ) { if ( authori >= 0 ) {
// check if the author was given with single quotes or without // check if the author was given with single quotes or without
final boolean quotes = (querystring.charAt(authori + 7) == '%'); final boolean quotes = (querystring.charAt(authori + 7) == '(');
String author; String author;
if ( quotes ) { if ( quotes ) {
int ftb = querystring.indexOf('%', authori + 8); int ftb = querystring.indexOf(')', authori + 8);
if ( ftb == -1 ) { if ( ftb == -1 ) {
ftb = querystring.length() + 1; ftb = querystring.length() + 1;
} }
author = querystring.substring(authori + 8, ftb); author = querystring.substring(authori + 8, ftb);
querystring = querystring.replace("author:%" + author + "%", ""); querystring = querystring.replace("author:(" + author + ")", "");
modifier.append("author:%").append(author).append("% "); modifier.append("author:(").append(author).append(") ");
} else { } else {
int ftb = querystring.indexOf(' ', authori); int ftb = querystring.indexOf(' ', authori);
if ( ftb == -1 ) { if ( ftb == -1 ) {

@ -77,13 +77,19 @@ public class yacysearchtrailer {
while (i < 10 && navigatorIterator.hasNext()) { while (i < 10 && navigatorIterator.hasNext()) {
name = navigatorIterator.next(); name = navigatorIterator.next();
count = namespaceNavigator.get(name); count = namespaceNavigator.get(name);
nav = "inurl:" + name; nav = "inurl%3A" + name;
queryStringForUrl = theQuery.queryStringForUrl(); queryStringForUrl = theQuery.queryStringForUrl();
p = queryStringForUrl.indexOf(nav); p = queryStringForUrl.indexOf(nav);
if (p < 0) {
queryStringForUrl += "+" + nav;
prop.put("nav-namespace_element_" + i + "_on", 1); prop.put("nav-namespace_element_" + i + "_on", 1);
prop.put(fileType, "nav-namespace_element_" + i + "_modifier", nav); prop.put(fileType, "nav-namespace_element_" + i + "_modifier", nav);
} else {
prop.put("nav-namespace_element_" + i + "_on", 0);
queryStringForUrl = (queryStringForUrl.substring(0, p) + queryStringForUrl.substring(p + nav.length())).trim();
}
prop.put(fileType, "nav-namespace_element_" + i + "_name", name); prop.put(fileType, "nav-namespace_element_" + i + "_name", name);
prop.put(fileType, "nav-namespace_element_" + i + "_url", QueryParams.navurl(fileType.name().toLowerCase(), 0, theQuery, queryStringForUrl + "+" + nav, theQuery.urlMask.toString(), theQuery.navigators).toString()); prop.put(fileType, "nav-namespace_element_" + i + "_url", QueryParams.navurl(fileType.name().toLowerCase(), 0, theQuery, queryStringForUrl, theQuery.urlMask.toString(), theQuery.navigators).toString());
prop.put("nav-namespace_element_" + i + "_count", count); prop.put("nav-namespace_element_" + i + "_count", count);
prop.put("nav-namespace_element_" + i + "_nl", 1); prop.put("nav-namespace_element_" + i + "_nl", 1);
i++; i++;
@ -105,13 +111,20 @@ public class yacysearchtrailer {
while (i < 20 && navigatorIterator.hasNext()) { while (i < 20 && navigatorIterator.hasNext()) {
name = navigatorIterator.next(); name = navigatorIterator.next();
count = hostNavigator.get(name); count = hostNavigator.get(name);
nav = "site:" + name; nav = "site%3A" + name;
queryStringForUrl = theQuery.queryStringForUrl(); queryStringForUrl = theQuery.queryStringForUrl();
p = queryStringForUrl.indexOf(nav); p = queryStringForUrl.indexOf(nav);
if (p < 0) {
queryStringForUrl += "+" + nav;
prop.put("nav-domains_element_" + i + "_on", 1); prop.put("nav-domains_element_" + i + "_on", 1);
prop.put(fileType, "nav-domains_element_" + i + "_modifier", nav); prop.put(fileType, "nav-domains_element_" + i + "_modifier", nav);
} else {
queryStringForUrl = (queryStringForUrl.substring(0, p) + queryStringForUrl.substring(p + nav.length())).trim();
prop.put("nav-authors_element_" + i + "_on", 0);
prop.put(fileType, "nav-authors_element_" + i + "_modifier", "-" + nav);
}
prop.put(fileType, "nav-domains_element_" + i + "_name", name); prop.put(fileType, "nav-domains_element_" + i + "_name", name);
prop.put(fileType, "nav-domains_element_" + i + "_url", QueryParams.navurl(fileType.name().toLowerCase(), 0, theQuery, queryStringForUrl + "+" + nav, theQuery.urlMask.toString(), theQuery.navigators).toString()); prop.put(fileType, "nav-domains_element_" + i + "_url", QueryParams.navurl(fileType.name().toLowerCase(), 0, theQuery, queryStringForUrl, theQuery.urlMask.toString(), theQuery.navigators).toString());
prop.put("nav-domains_element_" + i + "_count", count); prop.put("nav-domains_element_" + i + "_count", count);
prop.put("nav-domains_element_" + i + "_nl", 1); prop.put("nav-domains_element_" + i + "_nl", 1);
i++; i++;
@ -133,13 +146,20 @@ public class yacysearchtrailer {
while (i < 20 && navigatorIterator.hasNext()) { while (i < 20 && navigatorIterator.hasNext()) {
name = navigatorIterator.next().trim(); name = navigatorIterator.next().trim();
count = authorNavigator.get(name); count = authorNavigator.get(name);
nav = (name.indexOf(' ', 0) < 0) ? "author:" + name : "author:%" + name.replace(" ", "+") + "%"; nav = (name.indexOf(' ', 0) < 0) ? "author%3A" + name : "author%3A%28" + name.replace(" ", "+") + "%29";
queryStringForUrl = theQuery.queryStringForUrl(); queryStringForUrl = theQuery.queryStringForUrl();
p = queryStringForUrl.indexOf(nav); p = queryStringForUrl.indexOf(nav);
if (p < 0) {
queryStringForUrl += "+" + nav;
prop.put("nav-authors_element_" + i + "_on", 1); prop.put("nav-authors_element_" + i + "_on", 1);
prop.put(fileType, "nav-authors_element_" + i + "_modifier", nav); prop.put(fileType, "nav-authors_element_" + i + "_modifier", nav);
} else {
queryStringForUrl = (queryStringForUrl.substring(0, p) + queryStringForUrl.substring(p + nav.length())).trim();
prop.put("nav-authors_element_" + i + "_on", 0);
prop.put(fileType, "nav-authors_element_" + i + "_modifier", "-" + nav);
}
prop.put(fileType, "nav-authors_element_" + i + "_name", name); prop.put(fileType, "nav-authors_element_" + i + "_name", name);
prop.put(fileType, "nav-authors_element_" + i + "_url", QueryParams.navurl(fileType.name().toLowerCase(), 0, theQuery, queryStringForUrl + "+" + nav, theQuery.urlMask.toString(), theQuery.navigators).toString()); prop.put(fileType, "nav-authors_element_" + i + "_url", QueryParams.navurl(fileType.name().toLowerCase(), 0, theQuery, queryStringForUrl, theQuery.urlMask.toString(), theQuery.navigators).toString());
prop.put("nav-authors_element_" + i + "_count", count); prop.put("nav-authors_element_" + i + "_count", count);
prop.put("nav-authors_element_" + i + "_nl", 1); prop.put("nav-authors_element_" + i + "_nl", 1);
i++; i++;
@ -200,7 +220,7 @@ public class yacysearchtrailer {
} else { } else {
queryStringForUrl = (queryStringForUrl.substring(0, p) + queryStringForUrl.substring(p + nav.length())).trim(); queryStringForUrl = (queryStringForUrl.substring(0, p) + queryStringForUrl.substring(p + nav.length())).trim();
prop.put("nav-protocols_element_" + i + "_on", 0); prop.put("nav-protocols_element_" + i + "_on", 0);
prop.put(fileType, "nav-protocols_element_" + i + "_modifier", nav); prop.put(fileType, "nav-protocols_element_" + i + "_modifier", "-" + nav);
} }
prop.put(fileType, "nav-protocols_element_" + i + "_name", name); prop.put(fileType, "nav-protocols_element_" + i + "_name", name);
prop.put(fileType, "nav-protocols_element_" + i + "_url", QueryParams.navurl(fileType.name().toLowerCase(), 0, theQuery, queryStringForUrl, theQuery.urlMask.toString(), theQuery.navigators).toString()); prop.put(fileType, "nav-protocols_element_" + i + "_url", QueryParams.navurl(fileType.name().toLowerCase(), 0, theQuery, queryStringForUrl, theQuery.urlMask.toString(), theQuery.navigators).toString());

@ -795,9 +795,6 @@ public final class RWIProcess extends Thread
if ( !this.query.navigators.equals("all") && this.query.navigators.indexOf("namespace", 0) < 0 ) { if ( !this.query.navigators.equals("all") && this.query.navigators.indexOf("namespace", 0) < 0 ) {
return new ClusteredScoreMap<String>(); return new ClusteredScoreMap<String>();
} }
if ( this.namespaceNavigator.sizeSmaller(2) ) {
this.namespaceNavigator.clear(); // navigators with one entry are not useful
}
return this.namespaceNavigator; return this.namespaceNavigator;
} }
@ -825,9 +822,6 @@ public final class RWIProcess extends Thread
} }
} }
} }
if ( result.sizeSmaller(2) ) {
result.clear(); // navigators with one entry are not useful
}
return result; return result;
} }
@ -939,9 +933,6 @@ public final class RWIProcess extends Thread
if ( !this.query.navigators.equals("all") && this.query.navigators.indexOf("authors", 0) < 0 ) { if ( !this.query.navigators.equals("all") && this.query.navigators.indexOf("authors", 0) < 0 ) {
return new ConcurrentScoreMap<String>(); return new ConcurrentScoreMap<String>();
} }
if ( this.authorNavigator.sizeSmaller(2) ) {
this.authorNavigator.clear(); // navigators with one entry are not useful
}
return this.authorNavigator; return this.authorNavigator;
} }

Loading…
Cancel
Save