package railo.runtime.search.lucene2.highlight;
import java.io.IOException;
import java.io.StringReader;
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.TokenStream;
import org.apache.lucene.search.Query;
import org.apache.lucene.search.highlight.Highlighter;
import org.apache.lucene.search.highlight.QueryScorer;
import org.apache.lucene.search.highlight.SimpleHTMLFormatter;
import railo.commons.lang.StringUtil;
public class _Highlight {
public static String createContextSummary(Object highlighter, Analyzer analyzer, String text, int maxNumFragments,String defaultValue) throws IOException {
//try {
if(!(highlighter instanceof Highlighter) || analyzer==null || StringUtil.isEmpty(text))
return defaultValue;
TokenStream tokenStream = analyzer.tokenStream("", new StringReader(text));
return ((Highlighter)highlighter).getBestFragments(tokenStream, text, maxNumFragments, "...");
//}catch (Throwable t) {}
}
public static Object createHighlighter(Query query,String highlightBegin,String highlightEnd) {
return new Highlighter(
//new SimpleHTMLFormatter("<span class=\"matching-term\">","</span>"),
new SimpleHTMLFormatter(highlightBegin,highlightEnd),
new QueryScorer(query));
}
}