SpringDataSolr 过滤(或者叫筛选)查询
- // 被本类调用
- 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查询。
SpringDataSolr 过滤(或者叫筛选)查询的更多相关文章
- HBase多条件筛选查询方案
最近的项目需要使用Hbase做实时查询,由于Hbase只支持一级索引,也就是使用rowkey作为索引查询,所以对于多条件筛选查询的支持不够,在不建立二级索引的情况下,只能使用Hbase API中提供的 ...
- 学习笔记:oracle学习三:SQL语言基础之检索数据:简单查询、筛选查询
目录 1. 检索数据 1.1 简单查询 1.1.1 检索所有列 1.1.2 检索指定的列 1.1.3 查询日期列 1.1.4 带有表达式的select语句 1.1.5 为列指定别名 1.1.6 显示不 ...
- Django多条件筛选查询
转自:https://www.jianshu.com/p/a86281df530e Django多条件筛选查询 主模型只存在外键一对多关系 模型设计 # 快捷筛选状态 class Status(mod ...
- C#中巧用Lambda进行数据的筛选查询等处理
场景 有一个Record对象的list,如果要根据其某个属性CycleIndex进行分组,类似于sql的group by分组查询. 如果要在这个这个list中查找出符合某种条件的数据,类似于sql的w ...
- sql条件为空查询全部,不为空按条件查询以及多条件筛选查询。
procedure queryLackLonOrLatTdCell(i_region_name varchar2, i_state varchar2) is begin select region_n ...
- FineReport: 参数为空选出全部值(按条件查询,空条件时直接过滤,不进行查询。。)
在Java报表软件FineReport中,选择特定的参数(如下图中的姓名.身份证号等)后,会返回我们要查询的数据,然而假如没有输入参数值,我们却仍需要返回数据时该怎样处理呢?应该过滤掉这个条件,不按这 ...
- c#中如何不通过后台直接用js筛选gridview中的数据条件筛选查询?
js: //条件筛选 var showstate = true; function imagechange() { if (showstate) { $('#_toggle').hide(500, f ...
- sql关于对一个字段同时满足多条件判断来筛选查询
表所有数据 查询userName为abc或xyz的 以下为本菜鸟项目中遇到的问题: 背景: /** * wangjie 180629 * * 学生需要查询四种可能的消息 * 1.班级管理员发 ...
- js前端 多条件筛选查询
一.前言 在做项目中,遇到多条件筛选案例.实现完成以后,我将我做的代码分享在这里,希望可以帮助到其他朋友. 二.效果截图 三.实现代码 首先我先类型.类别.职位分成三块来处理,如果传到服务器端的话,就 ...
随机推荐
- django admin 设置(转载https://www.cnblogs.com/wumingxiaoyao/p/6928297.html)
Django admin 一些有用的设置 Django自带的后台管理是Django明显特色之一,可以让我们快速便捷管理数据.后台管理可以在各个app的admin.py文件中进行控制.以下是我最近摸 ...
- Java遍历树(深度优先+广度优先)
在编程生活中,我们总会遇见树性结构,这几天刚好需要对树形结构操作,就记录下自己的操作方式以及过程.现在假设有一颗这样树,(是不是二叉树都没关系,原理都是一样的) 1.深度优先 英文缩写为DFS即Dep ...
- python 的包的导入
已经写过一篇包的导入了,最近又遇到了点问题,所以想把这些再搞的明白点就又试了试 代码结构如下 在test目录下,有Admin包,home包,在home下有它的子包foo 各个文件代码如下 admins ...
- 使用jQuery+huandlebars遍历数组嵌套数组
兼容ie8(很实用,复制过来,仅供技术参考,更详细内容请看源地址:http://www.cnblogs.com/iyangyuan/archive/2013/12/12/3471227.html) & ...
- container injection——容器技术
(一)容器技术为什么出现 在很久很久以前,想要在线上服务器部署一个应用,首先需要购买一个物理服务器,在服务器安装一个操作系统,然后安装好应用所需要的各种依赖环境,最后才可以进行应用的部署,而且一台服务 ...
- java-web的请求和响应机制中的request请求
1 Request对象和Response对象的原理 1.1 都是由服务器创建的 我们使用它 1.2 Request对象 是获取请求消息 response对象是响应 2 request 对象的继 ...
- [转贴]LTP--linux稳定性测试 linux性能测试 ltp压力测试 ---IBM 的 linux test project
https://blog.csdn.net/melody157398/article/details/24354415 LTP--linux稳定性测试 linux性能测试 ltp压力测试 ---I ...
- Solidity的地址 数组如何判断是否包含一个给定的地址?
Q: given address[] wallets. What is the correct method to check that the list contains a given addre ...
- 如何快速学好Shell脚本? 转
如何快速学好Shell脚本? 目录 写作思路 知识体系 Shell 语言作为类 Unix 系统的原生脚本,有着非常实用的价值.但对于很多刚刚接触 Shell 脚本的同学来说,搞懂 Shell 语言 ...
- 家庭家长本-微信小程序
寒假在家的时候,做了一个简单的网页版家庭账本,后来自己学习了微信小程序的制作方法,现在想做一个微信小程序的家庭记账本. 首先要在微信公众平台注册一个微信小程序的账号,用的邮箱一个只能注册一个微信小程序 ...