我使用Lucene HighLighter,取得了成功。这是我的代码:
StringBuffer sb = new StringBuffer();
for (int t = 0; t < fields.length; t++) {
SimpleHTMLFormatter formatter = new SimpleHTMLFormatter(
"<span class=\"highlight\">", "</span>");
Highlighter highlighter = new Highlighter(formatter,
new QueryScorer(parser.parse(queryString)));
if (d.get(fields[t]) != null) {
hilites = highlighter.getBestFragments(analyzer, fields[t],
d.get(fields[t]), 3);
int l = hilites.length;
// System.out.println("hilites length: "+l);
if (l > 0) {
for (int x = 0; x < l; x++) {
sb.append(hilites[x]).append("...");
}
}
}
}
问题在于我的搜索结果/突出显示的文字,字符是乱码。这是因为缺少字体吗?
这是我的精彩集锦文字:
**on Educational Materials ~ ATS Job Board ""OR~C'C" .. III DUES United States Full... ? SL[I!," Full Memberhsip - Domestic membership is for residents residing in the United States. Dues...**
注意时髦的文字!
非常感谢任何帮助。
答案 0 :(得分:0)
“乱码文本问题”可能与Lucene无关,而是XML编码。您是否将'contentType'设置为“text / html; charset = UTF-8”?