solrj 高亮显示
2015-06-16 18:25
483 查看
版本solr-4.10.1中,不用配置文件设置高亮,而用solrj设置高亮。注意高亮的字段field必须设置storeOffsetsWithPositions="true",否则高亮异常:field
'dkeys' was indexed without offsets, cannot highlight。
很多老代码都是这么写,结论是:设置的css样式无效,默认成了<em></em>样式,高亮效果是字体斜体。
[java] view
plaincopy
params.add(HighlightParams.FIELDS, hls);
params.set(HighlightParams.HIGHLIGHT, true);
params.set(HighlightParams.SIMPLE_PRE, "<font color=\'red\'");或者red不用加单引号其实就可以不需要转义
params.set(HighlightParams.SIMPLE_POST, "</font>");
查了solrj官方资料这么写的:
[html] view
plaincopy
hl.simple.pre/hl.simple.post
The text which appears before and after a highlighted term when using the simple formatter. This parameter accepts per-field overrides.
The default values are "<em>" and "</em>" This parameter makes sense for the original Highlighter only. Use hl.tag.pre and hl.tag.post for FastVectorHighlighter (see example under hl.fragmentsBuilder)
This parameter makes sense for the original Highlighter only.
后来改成这样的代码,则设置的高亮效果有效:
[java] view
plaincopy
params.add(HighlightParams.FIELDS, hls);
params.set(HighlightParams.HIGHLIGHT, true);
params.set(HighlightParams.SNIPPETS, snippets);
params.set(HighlightParams.TAG_PRE, "<font color=\'red\'>");
params.set(HighlightParams.TAG_POST, "</font>");
结果显示代码:
[java] view
plaincopy
Map<String,Map<String,List<String>>> hl = response.getHighlighting();
//循环匹配title领域高亮集合
SolrDocumentList list = response.getResults();
for(SolrDocument sd : list){
System.out.println("-------------------------------------------");
List<String> highightSnippets = hl.get(sd.getFieldValue("id")).get("title");
if(highightSnippets != null){
for(int k =0 ; k < highightSnippets.size() ;k++){
String temp = highightSnippets.get(k);
System.out.println("title高亮返回为:" + temp);
}
}
}
'dkeys' was indexed without offsets, cannot highlight。
很多老代码都是这么写,结论是:设置的css样式无效,默认成了<em></em>样式,高亮效果是字体斜体。
[java] view
plaincopy
params.add(HighlightParams.FIELDS, hls);
params.set(HighlightParams.HIGHLIGHT, true);
params.set(HighlightParams.SIMPLE_PRE, "<font color=\'red\'");或者red不用加单引号其实就可以不需要转义
params.set(HighlightParams.SIMPLE_POST, "</font>");
查了solrj官方资料这么写的:
[html] view
plaincopy
hl.simple.pre/hl.simple.post
The text which appears before and after a highlighted term when using the simple formatter. This parameter accepts per-field overrides.
The default values are "<em>" and "</em>" This parameter makes sense for the original Highlighter only. Use hl.tag.pre and hl.tag.post for FastVectorHighlighter (see example under hl.fragmentsBuilder)
This parameter makes sense for the original Highlighter only.
后来改成这样的代码,则设置的高亮效果有效:
[java] view
plaincopy
params.add(HighlightParams.FIELDS, hls);
params.set(HighlightParams.HIGHLIGHT, true);
params.set(HighlightParams.SNIPPETS, snippets);
params.set(HighlightParams.TAG_PRE, "<font color=\'red\'>");
params.set(HighlightParams.TAG_POST, "</font>");
结果显示代码:
[java] view
plaincopy
Map<String,Map<String,List<String>>> hl = response.getHighlighting();
//循环匹配title领域高亮集合
SolrDocumentList list = response.getResults();
for(SolrDocument sd : list){
System.out.println("-------------------------------------------");
List<String> highightSnippets = hl.get(sd.getFieldValue("id")).get("title");
if(highightSnippets != null){
for(int k =0 ; k < highightSnippets.size() ;k++){
String temp = highightSnippets.get(k);
System.out.println("title高亮返回为:" + temp);
}
}
}
相关文章推荐
- 在Eclipse中运行Solr 基础知识
- Solr基础--设置solr/home的三种方式
- Docker使用supervisor构建solr
- solr4.0安装和简单导入mysql数据
- Solr 4.0 基础教程
- 自译Solr in action中文版
- Solr In Action 中文版 第一章(一)
- Solr In Action 中文版 第一章 (二)
- Solr In Action 中文版 第一章(三)
- 基于solr实现hbase的二级索引
- Tomcat/Solr4.3.1 配置过程
- Solr Facet技术的应用与研究
- Apache Solr查询语法
- Solr客户端删除数据的方式
- Centos 安装 Solr
- solr空间查询
- lucene solr在tomcat中的配置
- nutch1.4 部署应用
- 部署solr建立nutch索引
- solr4.8安装步骤和配置IK分词器