NIHVIVO-646 Fixes to autocomplete and form view after returning from invalid submission

This commit is contained in:
rjy7 2010-06-25 22:10:20 +00:00
parent 8dc823f663
commit daeca56691
2 changed files with 12 additions and 11 deletions

View file

@ -56,8 +56,8 @@ public class StartDateBeforeEndDate implements N3Validator {
Calendar endDate = getDateFromLiteral(endLit); Calendar endDate = getDateFromLiteral(endLit);
try { try {
if (startDate.compareTo(endDate) > 0) { if (startDate.compareTo(endDate) > 0) {
errors.put(startFieldName, "Start date must be before end date"); errors.put(startFieldName, "Start date cannot follow end date");
errors.put(endFieldName, "End date must be after start date"); errors.put(endFieldName, "End date cannot precede start date");
} }
} catch (NullPointerException npe){ } catch (NullPointerException npe){
log.error("Cannot compare date to null."); log.error("Cannot compare date to null.");

View file

@ -23,6 +23,7 @@ import org.apache.commons.logging.LogFactory;
import org.apache.lucene.analysis.Analyzer; import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.document.Document; import org.apache.lucene.document.Document;
import org.apache.lucene.index.Term; import org.apache.lucene.index.Term;
import org.apache.lucene.queryParser.QueryParser;
import org.apache.lucene.search.BooleanClause; import org.apache.lucene.search.BooleanClause;
import org.apache.lucene.search.BooleanQuery; import org.apache.lucene.search.BooleanQuery;
import org.apache.lucene.search.IndexSearcher; import org.apache.lucene.search.IndexSearcher;
@ -210,8 +211,9 @@ public class AutocompleteController extends FreeMarkerHttpServlet implements Sea
private Query getQuery(VitroRequest request, PortalFlag portalState, private Query getQuery(VitroRequest request, PortalFlag portalState,
Analyzer analyzer, String indexDir, String querystr, List<String> urisToExclude ) throws SearchException{ Analyzer analyzer, String indexDir, String querystr, List<String> urisToExclude ) throws SearchException{
Query query = null; Query query = null;
try{ try {
if( querystr == null){ if( querystr == null){
log.error("There was no Parameter '"+ QUERY_PARAMETER_NAME log.error("There was no Parameter '"+ QUERY_PARAMETER_NAME
+"' in the request."); +"' in the request.");
@ -222,15 +224,14 @@ public class AutocompleteController extends FreeMarkerHttpServlet implements Sea
return null; return null;
} }
// The way the analyzer is set up, name:Sm* returns no results, // Run the search term through the query parser so that it gets normalized in the same
// but name:sm* does. // way the index is normalized.
querystr = querystr.toLowerCase(); QueryParser queryParser = new QueryParser(Entity2LuceneDoc.term.NAME, analyzer);
query = queryParser.parse(querystr + "*");
{ {
BooleanQuery boolQuery = new BooleanQuery(); BooleanQuery boolQuery = new BooleanQuery();
boolQuery.add( boolQuery.add(query, BooleanClause.Occur.MUST);
new WildcardQuery(new Term(Entity2LuceneDoc.term.NAME, querystr+'*')),
BooleanClause.Occur.MUST);
Object param = request.getParameter("type"); Object param = request.getParameter("type");
boolQuery.add( new TermQuery( boolQuery.add( new TermQuery(
new Term(Entity2LuceneDoc.term.RDFTYPE, new Term(Entity2LuceneDoc.term.RDFTYPE,