From daeca5669164d5f6e27612260097858c754d4028 Mon Sep 17 00:00:00 2001 From: rjy7 Date: Fri, 25 Jun 2010 22:10:20 +0000 Subject: [PATCH] NIHVIVO-646 Fixes to autocomplete and form view after returning from invalid submission --- .../n3editing/StartDateBeforeEndDate.java | 4 ++-- .../controller/AutocompleteController.java | 19 ++++++++++--------- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/StartDateBeforeEndDate.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/StartDateBeforeEndDate.java index 0e21b190c..254e3b6c2 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/StartDateBeforeEndDate.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/StartDateBeforeEndDate.java @@ -56,8 +56,8 @@ public class StartDateBeforeEndDate implements N3Validator { Calendar endDate = getDateFromLiteral(endLit); try { if (startDate.compareTo(endDate) > 0) { - errors.put(startFieldName, "Start date must be before end date"); - errors.put(endFieldName, "End date must be after start date"); + errors.put(startFieldName, "Start date cannot follow end date"); + errors.put(endFieldName, "End date cannot precede start date"); } } catch (NullPointerException npe){ log.error("Cannot compare date to null."); diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/search/controller/AutocompleteController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/search/controller/AutocompleteController.java index e220944e5..69133ffba 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/search/controller/AutocompleteController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/search/controller/AutocompleteController.java @@ -23,6 +23,7 @@ import org.apache.commons.logging.LogFactory; import org.apache.lucene.analysis.Analyzer; import org.apache.lucene.document.Document; import org.apache.lucene.index.Term; +import org.apache.lucene.queryParser.QueryParser; import org.apache.lucene.search.BooleanClause; import org.apache.lucene.search.BooleanQuery; import org.apache.lucene.search.IndexSearcher; @@ -210,8 +211,9 @@ public class AutocompleteController extends FreeMarkerHttpServlet implements Sea private Query getQuery(VitroRequest request, PortalFlag portalState, Analyzer analyzer, String indexDir, String querystr, List urisToExclude ) throws SearchException{ + Query query = null; - try{ + try { if( querystr == null){ log.error("There was no Parameter '"+ QUERY_PARAMETER_NAME +"' in the request."); @@ -221,16 +223,15 @@ public class AutocompleteController extends FreeMarkerHttpServlet implements Sea "query length is " + MAX_QUERY_LENGTH ); return null; } - - // The way the analyzer is set up, name:Sm* returns no results, - // but name:sm* does. - querystr = querystr.toLowerCase(); + + // Run the search term through the query parser so that it gets normalized in the same + // way the index is normalized. + QueryParser queryParser = new QueryParser(Entity2LuceneDoc.term.NAME, analyzer); + query = queryParser.parse(querystr + "*"); { - BooleanQuery boolQuery = new BooleanQuery(); - boolQuery.add( - new WildcardQuery(new Term(Entity2LuceneDoc.term.NAME, querystr+'*')), - BooleanClause.Occur.MUST); + BooleanQuery boolQuery = new BooleanQuery(); + boolQuery.add(query, BooleanClause.Occur.MUST); Object param = request.getParameter("type"); boolQuery.add( new TermQuery( new Term(Entity2LuceneDoc.term.RDFTYPE,