001 package railo.runtime.search.lucene2.highlight; 002 003 import java.io.IOException; 004 import java.io.StringReader; 005 006 import org.apache.lucene.analysis.Analyzer; 007 import org.apache.lucene.analysis.TokenStream; 008 import org.apache.lucene.search.Query; 009 import org.apache.lucene.search.highlight.Highlighter; 010 import org.apache.lucene.search.highlight.QueryScorer; 011 import org.apache.lucene.search.highlight.SimpleHTMLFormatter; 012 013 import railo.commons.lang.StringUtil; 014 015 public class _Highlight { 016 017 public static String createContextSummary(Object highlighter, Analyzer analyzer, String text, int maxNumFragments,String defaultValue) throws IOException { 018 //try { 019 if(!(highlighter instanceof Highlighter) || analyzer==null || StringUtil.isEmpty(text)) 020 return defaultValue; 021 022 TokenStream tokenStream = analyzer.tokenStream("", new StringReader(text)); 023 return ((Highlighter)highlighter).getBestFragments(tokenStream, text, maxNumFragments, "..."); 024 //}catch (Throwable t) {} 025 026 } 027 028 public static Object createHighlighter(Query query,String highlightBegin,String highlightEnd) { 029 030 return new Highlighter( 031 //new SimpleHTMLFormatter("<span class=\"matching-term\">","</span>"), 032 new SimpleHTMLFormatter(highlightBegin,highlightEnd), 033 new QueryScorer(query)); 034 035 } 036 037 }