本人比较讨厌各种配置,比较喜欢在代码端进行设置控制,下面是用solrj进行设置的代码片段
// query.setHighlight(true); // 开启高亮组件或query.setParam("hl", "true");
query.setParam("hl", "true");
// query.addHighlightField("NAME");// 高亮字段
query.setParam("hl.q", searchText);
query.setParam("hl.fl", "NAME");
query.setHighlightSimplePre("<font color='red'>");//标记,高亮关键字前缀
query.setHighlightSimplePost("</font>");//后缀
query.setHighlightSnippets(3);//结果分片数,默认为1
query.setHighlightFragsize(1000);//每个分片的最大长度,默认为100
光使用这个的时候,我遇到一个问题就是无高亮显示,后来将需要高亮显示的字段在manage-schema中指定的field中的属性store设置为true后,成功将指定字段高亮显示,另外还要注意一点,要对指定字段进行高亮显示的时候,此字段必须在查询条件中存在,比如:
query.setQuery("NAME:123 OR NAME:12 OR ABC:ABC");
这样便可高亮显示该字段