[mb-commits] r13652 - search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet
[email protected] Wed, 03 Apr 2013 20:44:22 +0000
| Newsgroups | gmane.comp.audio.musicbrainz.cvs |
|---|---|
| Message-ID | <E1UNUXe-0000Gk-9Q@wiley> |
Author: ijabz
Date: 2013-04-03 20:44:21 +0000 (Wed, 03 Apr 2013)
New Revision: 13652
Modified:
search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/AbstractDismaxSearchServer.java
search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/AbstractSearchServer.java
search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/SearchServer.java
Log:
SEARCH-281:If set explain=true option with dismax search it actually does a non-indexed search
Modified: search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/AbstractDismaxSearchServer.java
===================================================================
--- search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/AbstractDismaxSearchServer.java 2013-03-29 19:57:58 UTC (rev 13651)
+++ search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/AbstractDismaxSearchServer.java 2013-04-03 20:44:21 UTC (rev 13652)
@@ -39,7 +39,14 @@
}
@Override
- public String explain(String query, int offset, int limit) throws IOException, ParseException {
+ public String explain(String userQuery, int offset, int limit) throws IOException, ParseException {
+ Query query = parseQuery(userQuery);
+ return realSearchServer.explain(query, offset, limit);
+ }
+
+
+ @Override
+ public String explain(Query query, int offset, int limit) throws IOException, ParseException {
return realSearchServer.explain(query, offset, limit);
}
Modified: search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/AbstractSearchServer.java
===================================================================
--- search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/AbstractSearchServer.java 2013-03-29 19:57:58 UTC (rev 13651)
+++ search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/AbstractSearchServer.java 2013-04-03 20:44:21 UTC (rev 13652)
@@ -248,24 +248,28 @@
return results;
}
+ public String explain(String userQuery, int offset, int limit) throws IOException, ParseException {
+ Query parsedQuery = parseQuery(userQuery);
+ return explain(parsedQuery, offset, limit);
+ }
+
/* (non-Javadoc)
* @see org.musicbrainz.search.servlet.ISearchServer#explain(java.lang.String, int, int)
*/
@Override
- public String explain(String query, int offset, int limit) throws IOException, ParseException {
+ public String explain(Query query, int offset, int limit) throws IOException, ParseException {
StringBuffer sb = new StringBuffer("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\n");
sb.append("<html lang=\"en\">\n<head>\n");
sb.append("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">\n");
sb.append("</head>\n<body>");
IndexSearcher searcher = searcherManager.acquire();
try {
- Query parsedQuery = parseQuery(query);
- TopDocs topdocs = searcher.search(parsedQuery, offset + limit);
+ TopDocs topdocs = searcher.search(query, offset + limit);
ScoreDoc docs[] = topdocs.scoreDocs;
float maxScore = topdocs.getMaxScore();
- sb.append("<p>Query:" + parsedQuery.toString() + "</p>\n");
+ sb.append("<p>Query:" + query.toString() + "</p>\n");
for (int i = 0; i < docs.length; i++) {
- explainAndDisplayResult(i, sb, searcher, parsedQuery, docs[i], maxScore);
+ explainAndDisplayResult(i, sb, searcher, query, docs[i], maxScore);
}
searchCount.incrementAndGet();
} finally {
Modified: search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/SearchServer.java
===================================================================
--- search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/SearchServer.java 2013-03-29 19:57:58 UTC (rev 13651)
+++ search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/SearchServer.java 2013-04-03 20:44:21 UTC (rev 13652)
@@ -47,6 +47,8 @@
* @throws IOException
* @throws ParseException
*/
+ public abstract String explain(Query query, int offset, int limit) throws IOException, ParseException;
+
public abstract String explain(String query, int offset, int limit) throws IOException, ParseException;
public abstract SearcherManager getSearcherManager();