From 1dcbe8491fdc56df73478829b50c39e24b50e297 Mon Sep 17 00:00:00 2001 From: runeliza Date: Fri, 8 Jul 2011 19:08:04 +0000 Subject: [PATCH] It seemed to work better without using tokenizeNameQuery(), i.e. return results when searched for emails. Previously it didn't return anything when tokenized. Not sure why. --- .../grefine/JSONReconcileServlet.java | 31 +++---------------- 1 file changed, 4 insertions(+), 27 deletions(-) diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/grefine/JSONReconcileServlet.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/grefine/JSONReconcileServlet.java index 9badeb101..a8ef62ca5 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/grefine/JSONReconcileServlet.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/grefine/JSONReconcileServlet.java @@ -39,7 +39,6 @@ import org.apache.solr.common.SolrDocumentList; /** * This servlet is for servicing JSON requests from Google Refine's * Reconciliation Service. - * TODO: Should create a separate package for Google Refine related servlets * * @author Eliza Chan (elc2013@med.cornell.edu) * @@ -76,6 +75,7 @@ public class JSONReconcileServlet extends VitroHttpServlet { String responseStr = (vreq.getParameter("callback") == null) ? qJson .toString() : vreq.getParameter("callback") + "(" + qJson.toString() + ")"; + System.out.println("JSONReconcileServlet result: " + responseStr); ServletOutputStream out = resp.getOutputStream(); out.print(responseStr); } else { // metadata @@ -119,6 +119,7 @@ public class JSONReconcileServlet extends VitroHttpServlet { // "q2":{"query":"Dina","type":"http://xmlns.com/foaf/0.1/Person","type_strict":"should"}} String qStr = (String) qObj; queries.add(qStr); + System.out.println("JSONReconcileServlet query: " + qStr); log.debug("\nquery: " + qStr + "\n"); } @@ -388,7 +389,8 @@ public class JSONReconcileServlet extends VitroHttpServlet { // Google Refine specific: query.setStart(0).setRows(limit); - setNameQuery(query, queryStr); + // TODO: works better without using tokenizeNameQuery(), need to investigate a bit more + query.setQuery(queryStr); // Filter by type // e.g. http://xmlns.com/foaf/0.1/Person @@ -412,32 +414,7 @@ public class JSONReconcileServlet extends VitroHttpServlet { return query; } - private void setNameQuery(SolrQuery query, String queryStr) { - if (StringUtils.isBlank(queryStr)) { - log.error("No query string"); - } - - // original code: - // String tokenizeParam = (String) request.getParameter("tokenize"); - // boolean tokenize = "true".equals(tokenizeParam); - - // Note: Stemming is only relevant if we are tokenizing: an untokenized name - // query will not be stemmed. So we don't look at the stem parameter until we get to - // setTokenizedNameQuery(). - //if (tokenize) { - // setTokenizedNameQuery(query, queryStr, request); - //} else { - // setUntokenizedNameQuery(query, queryStr); - //} - - // Google Refine specific - setTokenizedNameQuery(query, queryStr); - } - - private void setTokenizedNameQuery(SolrQuery query, String queryStr) { - query.setQuery(tokenizeNameQuery(queryStr)); - } private String tokenizeNameQuery(String queryStr) { /* We currently have no use case for a tokenized, unstemmed autocomplete search field, so the option