作者:最棒小小丫_635 | 来源:互联网 | 2023-08-08 13:26
一、我的项目构造二、pom.xml在pom.xml文件中增加springboot、solr、freemarker相干的依赖包{代码}三、制作.ftl模板1、创立excel模板,并填充一些假数据,不便后续定位2、另存为xml格局3、批改后缀为ftl4、解决ftl文件记得将ss:ExpandedRowCount"5"删掉,因为前面循环遍历的时候必定会超过行数为5的限度,删除就示意不
一、我的项目构造
二、pom.xml
在pom.xml文件中增加springboot、solr、freemarker相干的依赖包
org.springframework.boot
spring-boot-starter-freemarker
cn.hutool
hutool-all
5.2.0
org.springframework.boot
spring-boot-starter-web
org.apache.solr
solr-solrj
org.springframework.boot
spring-boot-starter-data-solr
org.projectlombok
lombok
1.16.14
provided
三、制作.ftl模板
1、创立excel模板,并填充一些假数据,不便后续定位
2、另存为xml格局
3、批改后缀为ftl
4、解决ftl文件
记得将ss:ExpandedRowCount=”5″删掉,因为前面循环遍历的时候必定会超过行数为5的限度,删除就示意不限度表格的行数
将stat.ftl放入resources/templates
四、在springboot上应用solr进行多字段分组统计数据
这里须要留神因为查看HttpSolrClient源码发现DEFAULT_PATH默认是”/select”,并且没找到能够批改path的中央,所以如果solr服务有自定义/select的状况下,就能够拷贝源码,而后在本地新建一个同名的HttpSolrClient,能够参考我的我的项目构造
拓展常识:solr中q与fq参数的区别?
如果用q=content:”中国”,就会查找所有content中蕴含”中国”的,而后order by score,这时就会按content的类似度来排序。
而如果用fq,q设置为:。那么solr会先order by score,而因为条件是:,所以所有文档的相关性都是一样的,所以即应用fq过滤了,返回排在最后面的却不是相关性最高的。
综上所述,以相关性(score)为优先排序条件的,那么条件肯定放在q参数中,而fq仅仅只是条件的过滤而没有权重相关性为优先排序。
五、封装完数据并渲染到ftl模板,导出EXCEL
大家可能会遇到模板导出的时候报错,提醒template not found(模板未找到),这时候须要到application.yml配置下freemarker模板的加载门路,其实还有挺多默认的配置,然而只有这两行相干的配置就能满足广泛须要,如有特地的配置需要可到官网查看
源码地址:https://github.com/AsLightJav…
如有不分明或者遇到问题的,可上面留言分割我。