Solr专题(三)SSM项目整合Solr
一、环境配置
所需要的jar包: org.apache.solr.solr-solrj
maven依赖:
<!-- https://mvnrepository.com/artifact/org.apache.solr/solr-solrj -->
<dependency>
<groupId>org.apache.solr</groupId>
<artifactId>solr-solrj</artifactId>
<version>7.7.2</version>
</dependency>
二、教程
solr查询方法:
/**
* 执行solr查询
* @param query SolrQuery
* @param pageNo 页码
* @param pageSize 页面数据大小
* @param orderBy 排序
* @return Map<String, Object>
*/
public Map<String, Object> getSolrQuery(String query, String pageNo, String pageSize, String orderBy){
SolrQuery solrQuery = new SolrQuery();
solrQuery.set(CommonParams.Q, query);
Map<String, Object> map = Maps.newHashMap();
map.put("total", 0);
map.put("rows", Collections.emptyList());
try {
Integer no = PageUtils.parseNo(pageNo);
Integer size = PageUtils.parseSize(pageSize);
Integer offset = PageUtils.getOffset(no, size);
solrQuery.setStart(offset);
solrQuery.setRows(size);
setOrder(solrQuery, orderBy);
//执行查询并返回结果
QueryResponse resp = solrClient.query(solrQuery);
SolrDocumentList results = resp.getResults();
//获取查询到的数据总量
long numFound = results.getNumFound();
if(numFound <= 0) {
return map;
}else {
map.put("total", numFound);
map.put("rows", convert(results));
return map;
}
} catch (Exception e) {
LOGGER.error(e.getMessage(), e);
return map;
}
}
/**
* 设置排序方式
*
* @param solrQuery SolrQuery
* @param orderBy 排序字段 example:name desc
*/
private void setOrder(SolrQuery solrQuery, String orderBy) {
if(VerifyUtils.isEmpty(orderBy)) {
return;
}
String[] split = orderBy.split(SPACE);
if("asc".equals(split[1].toLowerCase())) {
solrQuery.setSort(split[0], ORDER.asc);
}else {
solrQuery.setSort(split[0], ORDER.desc);
}
}
其中SolrQuery实体为Solr的查询实体,其调用方法
set( String name, String ... val ):设置查询参数,name可以使用org.apache.solr.common.params.CommonParams类调用,具体参数与上一节 Solr专题(二)详解Solr查询参数 一致。
下节主要讲解solr在项目中的安全设置。
Solr专题(三)SSM项目整合Solr的更多相关文章
- SSM项目整合第一步 注册登陆实现
SSM项目整合第一步 注册: 项目目录: 一.数据库建表: 源码: ; -- ---------------------------- -- Table structure for t_user - ...
- SSM项目整合基本步骤
SSM项目整合 1.基本概念 1.1.Spring Spring 是一个开源框架, Spring 是于 2003 年兴起的一个轻量级的 Java 开发框架,由 Rod Johnson 在其著作 ...
- SSM项目整合Quartz
一.背景 SSM项目中要用到定时器,初期使用Timer,后来用spring 的schedule,都比较简单,所以功能比较单一而且他们不能动态的配置时间.后来就研究quartz,准备整合到项目中.Qua ...
- SSM项目整合纪实
一 前 言 本来是为了探究一些功能性问题,需要一套完整的项目架构,本以为SSM用过那么多了,轻松搭建不在话下,但是过程中还是遇到一些问题,踩到一些未曾料想的坑.博文以搭建极简架构为目的,附带一些关键阐 ...
- SSM 项目整合
SSM整合:spring + springmvc + mybatis 1.1 生成Maven项目:ar_ssm 1.2 添加jar包 <dependencies> <!-- 单元测试 ...
- 【solr专题之中的一个】Solr高速入门
一.Solr学习相关资料 1.官方材料 (1)高速入门:http://lucene.apache.org/solr/4_9_0/tutorial.html.以自带的example项目高速介绍发Solr ...
- ssm项目整合shiro
pom.xml <properties> <shiro.version>1.2.2</shiro.version> </properties> < ...
- SpringMVC详解及SSM框架整合项目
SpringMVC ssm : mybatis + Spring + SpringMVC MVC三层架构 JavaSE:认真学习,老师带,入门快 JavaWeb:认真学习,老师带,入门快 SSM框架: ...
- 使用IntelliJ IDEA创建Maven聚合工程、创建resources文件夹、ssm框架整合、项目运行一体化
一.创建一个空的项目作为存放整个项目的路径 1.选择 File——>new——>Project ——>Empty Project 2.WorkspaceforTest为项目存放文件夹 ...
随机推荐
- 2020-05-08:mycat部署数据库集群的时候 遇到了哪些坑
福哥答案2020-05-08:答案仅供参考,来自群员 使用activity时,连接mycat设置进去的序列化的流程变量,反序列化会报错这个类型字段类型是blob类型,mycat对这种类型处理时有点问题
- C#LeetCode刷题-极小化极大
极小化极大篇 # 题名 刷题 通过率 难度 375 猜数字大小 II 23.4% 中等 464 我能赢吗 25.5% 中等 486 预测赢家 40.4% 中等 843 猜猜这个单词 2 ...
- Oracle创建主键优劣
创建主键方式 一个表的主键是唯一标识,不能有重复,不允许为空. 一个表的主键可以由一个字段或多个字段共同组成. -- 列级,表级建立主键 1.create table constraint_test ...
- 粗略总结for循环与foreach()循环区别
for循环和foreach循环其实可以算得上是从属关系的,即foreach循环是可以转化成for循环,但是for循环不一定能转换成foreach循环. 下面简单介绍一下两种循环: .for循环 代码格 ...
- PythonCrashCourse 第十章习题
在文本编辑器中新建一个文件,写几句话来总结一下你至此学到的Python知识,其中每一行都以"In Python you can"打头.将这个文件命名为 learning_pytho ...
- SSM框架整合练习——一个简单的文章管理系统
使用SSM框架搭建的简易文章管理系统,实现了简单的增删改查功能. @ 目录 开发工具版本: 最终的项目结构 IDEA+Maven搭建项目骨架 1. 新建Maven项目: 2. 在新建的项目中添加所需要 ...
- JavaScript学习系列博客_9_JavaScript中的if语句、switch语句
条件判断语句 - 条件判断语句也称为if语句 - 语法一: if(条件表达式){ 语句... } - 执行流程: if语句执行时,会先对条件表达式进行求值判断, 如果值为true,则执行if后的语句 ...
- golang方法
1.方法声明 在函数声明时,在其名字之前放上一个变量,即是一个方法.这个附加的参数会将该函数附加到这种类型上,即相当于为这种类型定义了一个独占的方法. package main import &quo ...
- Spring Cloud Admin健康检查 邮件、钉钉群通知
源码地址:https://github.com/muxiaonong/Spring-Cloud/tree/master/cloudadmin Admin 简介 官方文档:What is Spring ...
- python编译错误ValueError: Complex data not supported
今天在用python跑一个k-means算法与谱聚类算法对比的程序时,谱聚类的图不能出来,编译报错 后来,多亏了这位GitHub用户,找到了解决办法,是因为在运算过程中出现了复数,因此要进行强制转换 ...