Author: ssthkjer Date: 2007-02-05 15:01:07 +0100 (Mon, 05 Feb 2007) New Revision: 4416
Modified: trunk/core-api/src/main/java/no/schibstedsok/searchportal/view/velocity/BoldWordDirective.java Log: https://jira.sesam.no/jira/browse/SEARCH-1554 Modified: trunk/core-api/src/main/java/no/schibstedsok/searchportal/view/velocity/BoldWordDirective.java =================================================================== --- trunk/core-api/src/main/java/no/schibstedsok/searchportal/view/velocity/BoldWordDirective.java 2007-02-05 11:17:08 UTC (rev 4415) +++ trunk/core-api/src/main/java/no/schibstedsok/searchportal/view/velocity/BoldWordDirective.java 2007-02-05 14:01:07 UTC (rev 4416) @@ -23,6 +23,7 @@ * - "og" and "i" in the query should not be bolded. * - Capitalized words should stay capitalized * - remove "," and "!" from query words + * - independant word ("Billån" should not match lån) * * <code> * #boldWord('leter du etter hotell i Paris' 'hotell i paris') @@ -67,23 +68,24 @@ if (argCount != 1) { String text = node.jjtGetChild(0).value(context).toString(); - final String query = node.jjtGetChild(1).value(context).toString(); + String query = node.jjtGetChild(1).value(context).toString(); if(text == null) { writer.write(""); return true; - } - - String patternstr = "[\\p{Punct}\\p{Space}]+"; + } + query = query.replaceAll("\"", ""); + query = query.replaceAll("'", ""); String replace = ""; String replaceUp = ""; - List list = Arrays.asList(query.split(patternstr)); + List list = Arrays.asList(query.split("[\\p{Punct}\\p{Space}]+")); + for (int i=0;i<list.size();i++) { if (!list.get(i).toString().toLowerCase().equals("og") && !list.get(i).toString().toLowerCase().equals("i")) { - replace = "<b>" + list.get(i) + "</b>"; - replaceUp = "<b>" + StringUtils.capitalize(list.get(i).toString()) + "</b>"; - text = text.replaceAll(list.get(i).toString(), replace); - text = text.replaceAll(StringUtils.capitalize(list.get(i).toString()), replaceUp); + replace = " <b>" + list.get(i) + "</b>"; + replaceUp = " <b>" + StringUtils.capitalize(list.get(i).toString()) + "</b>"; + text = text.replaceAll("(\\s|^)" + list.get(i).toString() + "(?![a-z])", replace); + text = text.replaceAll("(\\s|^)" + StringUtils.capitalize(list.get(i).toString()) + "(?![a-z])", replaceUp); //text = text.replaceAll("(?i)" + list.get(i), rep); } } _______________________________________________ Kernel-commits mailing list [email protected] http://sesat.no/mailman/listinfo/kernel-commits
