最近在弄Nutch1.2,实现关键字高亮,却发现标题关键字高亮的方法,国内网站上的都是错的,最终在nutch.apache.org网站找到了相近的代码,进行修改,终于成功完成
关键字的高亮需要自己再创建一个分词器,关键的类是TokenStream,lucene3.0以上需要用到TermAttribute。
一、内容关键字高亮很简单,修改include/style.html即可:
.highlight {
color:#FF0000;
}
二、标题关键字高亮的方法:
我们从内容关键字高亮的方法可以得到启发:
首先来看这一句:
String summary = summaries[i].toHtml(true);
这个是调用了org.apache.nutch.searcher.Summary方法
public String toHtml(boolean encode){...}
这是标题的获取方法
String title = detail.getValue("title");
我们可不可以也像summary一样调用呢,答案是肯定的,但是,nutch本身并未提标题关键字高亮的方法,这里需要我们写类和方法。
新建Titler.java
package org.apache.nutch.searcher;
import java.io.IOException;
import java.io.StringReader;
import java.util.ArrayList;
import java.util.HashSet;
import org.apache.hadoop.conf.Configurable;
import org.apache.hadoop.conf.Configuration;
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.Token;
import org.apache.lucene.analysis.TokenStream;
import org.apache.lucene.analysis.tokenattributes.TermAttribute;
import org.apache.lucene.analysis.tokenattributes.TypeAttribute;
import org.apache.nutch.analysis.NutchDocumentAnalyzer;
import org.apache.nutch.searcher.Summary.Fragment;
public class Titler implements Configurable {
private int ma
关键字的高亮需要自己再创建一个分词器,关键的类是TokenStream,lucene3.0以上需要用到TermAttribute。
一、内容关键字高亮很简单,修改include/style.html即可:
.highlight {
color:#FF0000;
}
二、标题关键字高亮的方法:
我们从内容关键字高亮的方法可以得到启发:
首先来看这一句:
String summary = summaries[i].toHtml(true);
这个是调用了org.apache.nutch.searcher.Summary方法
public String toHtml(boolean encode){...}
这是标题的获取方法
String title = detail.getValue("title");
我们可不可以也像summary一样调用呢,答案是肯定的,但是,nutch本身并未提标题关键字高亮的方法,这里需要我们写类和方法。
新建Titler.java
package org.apache.nutch.searcher;
import java.io.IOException;
import java.io.StringReader;
import java.util.ArrayList;
import java.util.HashSet;
import org.apache.hadoop.conf.Configurable;
import org.apache.hadoop.conf.Configuration;
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.Token;
import org.apache.lucene.analysis.TokenStream;
import org.apache.lucene.analysis.tokenattributes.TermAttribute;
import org.apache.lucene.analysis.tokenattributes.TypeAttribute;
import org.apache.nutch.analysis.NutchDocumentAnalyzer;
import org.apache.nutch.searcher.Summary.Fragment;
public class Titler implements Configurable {
private int ma