复制域高亮:
title和content组成一个复制域,law_keywords
public SearchResult search(String keyword, int page, int rows) throws IOException, SolrServerException {
SolrQuery query = new SolrQuery();
query.setQuery(keyword);
if (page<=0) {
page=1;
}
query.setStart((page - 1) * rows);
query.setRows(rows);
query.set("df", "law_keywords");
query.setHighlight(true);
query.addHighlightField("law_title");
query.addHighlightField("law_content");
query.setHighlightSimplePre("<em style=\"color:red\">");
query.setHighlightSimplePost("</em>");
query.setHighlightFragsize(2147483647);
SearchResult searchResult = null;
searchResult = searchDao.search(query);
long recordCount = searchResult.getRecordCount();
int totalPage = (int)(recordCount/rows);
if (recordCount % rows >0) {
totalPage++;
}
searchResult.setTotalPages(totalPage);
return searchResult;
}
其中df表示的是default field ,默认查哪个域
我默认搜索的是law_title和law_content组成的复制域law_keywords
setHighightFragsize 是设置solr的最大查询字符串,这个默认是100,也就是100字符之后将不再显示
setHighlightSimplePre 和post是设置高亮域的前后缀,如果想在网页上显示成红色效果就套上一个em标签
多值域高亮:
查询 authors:"鲁迅" OR authors:"张爱玲"
设置hl.preserveMulti=true 可以高亮多个搜索条件的