根据下面这个链接教程编码后试验发现标题只是加上了<strong></strong>标签,并没有实现<strong>标签的效果。不知道作者用的是那个版本的nutch,我用1.2版没效果。
http://hi.baidu.com/conquer84/blog/item/50bc43eea1a147fdb2fb959a.html
链接的教程:
在org.apache.nutch.searcher.HitDetails这个类中
添加一个新定义:
public String getColValue(String title,String digString)
{
return getValue(title).replaceAll(digString.toUpperCase(),"<strong>"+digString.toUpperCase()+"</Strong>");
}
然后再search.jsp里把String title = detail.getValue("title"); 改成String title = detail.getColValue("title",queryString);
就是在调用detail.getValue("title");这个方法的地方改成detail.getColValue("title",queryString);
这样做的话在1.2版中只是在标题显示<strong></strong>标签,看下源码,发现title不是直接显示出来,而是经过一个叫Entities的类重新编码,可在search.jsp中第265行中看到。我的做法是把这行中的Entities.encode(title)改成title就行。
如果还想加上颜色就把
"<strong>"+digString.toUpperCase()+"</Strong>"
改成
"<Strong><font color=#ff0000 >"+digString.toUpperCase()+"</font></Strong>"
我这是改成红色。
2010-10-4