solr 高亮springdatasolr
2024-10-15 11:18:58
@Autowired
private SolrTemplate solrTemplate; @Override
public Map<String, Object> search(Map searchMap) {
return searchList(searchMap);
} //被本类调用
private Map searchList(Map searchMap){ SimpleHighlightQuery highlightQuery = new SimpleHighlightQuery(new Criteria("hyd_keywords").is(searchMap.get("keywords")));
highlightQuery.setHighlightOptions(new HighlightOptions().addField("hyd_title").setSimplePrefix("<em style='color:red'>").setSimplePostfix("</em>"));
HighlightPage<TbItem> page = solrTemplate.queryForHighlightPage(highlightQuery, TbItem.class); for (HighlightEntry<TbItem> highlightEntry : page.getHighlighted()) {
TbItem tbItem = highlightEntry.getEntity(); if(highlightEntry.getHighlights().size()>0 && highlightEntry.getHighlights().get(0).getSnipplets().size()>0){
tbItem.setTitle(highlightEntry.getHighlights().get(0).getSnipplets().get(0));//设置高亮的结果
}
} HashMap<String, Object> hashMap = new HashMap<>();
hashMap.put("rowsHyd", page.getContent());
return hashMap;
}
pyg search 高亮搜索
思路:创建个SimpleHighlightQuery ,往里丢个条件Criteria,在丢个 满足条件 的时候 什么东西 要去干什么事(HighlightOptions中设置), 把前面的东西 丢到 查询中,并给个要返回什么类型(反射),拿到 东西 咔咔一顿 设置,最后再通过getContent()拿到设置完的东西
new HighlightOptions().addField("hyd_title") 可以添加多个。
//获取高亮列表(高亮域的个数)
List<Highlight> highlightList =highlightEntry.getHighlights();
List<String> sns = h.getSnipplets();//每个域有可能存储多值 (hyd_keywords) copy域与multiValued 的关系 ---------情景没有试
Snipplet:片段
最新文章
- 面向对象之struct
- socket的简单通信
- 网络攻击之二:XSS(之一是SQL注入,前面有文章)
- C/C++中static关键字详解-zz
- as3.0服务端FMS软件常用的方法与属性参考示例
- 【Python】一个python实例:给重要的文件创建备份.摘自crossin-python简明教程
- [JDBC-2] JDBC CURD
- localtime()方法的疑惑
- 查询(Query)和标识(Identify)
- C#微信公众号开发--网页授权(oauth2.0)获取用户基本信息二
- M-移动端的webapp页面布局教程和webapp实战分析
- [LeetCode] Smallest Range 最小的范围
- Java8 list转map 坑
- 将Maple输出的LaTex导出到txt文件
- sqlserver数据库查询,在数据类型不一致时容易出错
- SQLServer 学习笔记 序
- 如何在Visual Studio VS中定义多项目模板
- [Algorithm] Deferred Acceptance Algorithm
- ABAP-SAP的LUW和DB的LUW的区别
- 【原创】获取MySQL crash 时的core file