本人就用我的【搜罗搜索】举例说明下
先打开搜罗搜索www.san520.com,
操作如下: 方法一:很多人说在数据库中直接使用这个,但是具体怎么实现你们可以去问一下那些高手,呵呵,我是没太明白,竟然有人可行,说明这种方法是实用的,只是看不同版本是否都能解决问题。给出的例子:q1=q1.replaceAll(keywords, "<span style='background:red'>"+keywords+"</span >");这其中q1是字段名称。在数据库中这种方式是可行的。如果要实现搜索引擎的关键字高亮显示,我就不知道这种方式怎么实现了,可以参与共同讨论; 方法二:在jsp页面中使用Highlighter方法; 例如我的程序中的代码如下: String q1="啊哦"; request.setCharacterEncoding("gb2312"); ArrayList<String> temp=(ArrayList<String>)request.getAttribute("result"); String word=request.getParameter("textfield1"); Query query=IKQueryParser.parse(" 啊 哦 ",request.getParameter("textfield1")); Analyzer analyzer=new IKAnalyzer(); QueryScorer scorer=new QueryScorer(query);
SimpleHTMLFormatter simpleHTMLFormatter=new SimpleHTMLFormatter("<font color='red'>", "</font>"); Highlighter highlighter=new Highlighter(simpleHTMLFormatter,scorer); for(int i=0;i<temp.size();i++){ String text=highlighter.getBestFragment(analyzer,"啊 哦 ",temp.get(i));//进行高亮显示 ? out.print(""+text+"<br/>");//显示原文和注释的输出结果 方法三:在lucene建索引的过程中高亮显示,这样的话就显示在内存中了。 例如我的程序: //String[] highlightCol = {"啊哦"}; ? //Highlighter highlighter = null;
本文暂时没有评论,来添加一个吧(●'◡'●)