SpringDataSolr 过滤(或者叫筛选)查询
2024-08-24 05:15:05
// 被本类调用
private Map searchList(Map searchMap) {
// 1.1关键字查询
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>")); // 1.2按分类筛选 相当having
if (!"".equals(searchMap.get("category"))) {
highlightQuery.addFilterQuery(new SimpleFilterQuery(new Criteria("hyd_category").is(searchMap.get("category"))));
} // 1.3按品牌筛选 同上
if (!"".equals(searchMap.get("brand"))) {
highlightQuery.addFilterQuery(new SimpleFilterQuery(new Criteria("hyd_brand").is(searchMap.get("brand"))));
} // 1.4过滤规格 同上
if (searchMap.get("spec") != null) {
Map<String, String> specMap = (Map) searchMap.get("spec");
for (String key : specMap.keySet()) {
highlightQuery.addFilterQuery(new SimpleFilterQuery(new Criteria("hyd_spec_" + key).is(specMap.get(key))));
}
} /*
* 查询 刚刚开始
*/
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;
}
addFilterQuery方法需要的接口参数
筛选查询是执行原始查询后应用的简单solr查询。
最新文章
- [Android] 安卓模拟器临时文件相关问题
- OpenCV Start
- 善用VS中的Code Snippet来提高开发效率 分类: C# 2015-01-22 11:06 69人阅读 评论(0) 收藏
- corosync集群的选举算法
- MySQL常见建表选项以约束
- 201521123122 《java程序设计》第八周实验总结
- IntersectionObserver实现图片懒加载
- Java HashMap的扩容
- 简单实现计算机上多个jdk环境切换
- Java并发编程-并发工具类及线程池
- 为Ubuntu新创建用户创建默认.bashrc并自动加载
- 一次Windows 安装问题
- Log4j详细介绍(五)----输出地Appender
- C++解析五-this 指针,指向类的指针
- Java编程的逻辑 (69) - 线程的中断
- 高效开发iOS系列 -- 那些不为人知的KVC
- volatile关键字学习
- linux进程cpu资源分配命令nice,renice,taskset
- JAVAEE——宜立方商城09:Activemq整合spring的应用场景、添加商品同步索引库、商品详情页面动态展示与使用缓存
- Log4j(3)--rootLogger根配置和appender输出类型配置