首先,在maven的pom.xml文件中配置对spring和solrj客户端的依赖:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.itszt.DemoSS1</groupId><artifactId>DemoSS1</artifactId><version>1.0-SNAPSHOT</version><packaging>jar</packaging><name>DemoSS1</name><url>http://maven.apache.org</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><!-- Spring依赖 --><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>4.1.3.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId><version>4.1.3.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>4.1.3.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-aspects</artifactId><version>4.1.3.RELEASE</version></dependency><!--solr客户端solrj的依赖 --><dependency><groupId>org.apache.solr</groupId><artifactId>solr-solrj</artifactId><version>4.10.1</version></dependency><!--单元测试--><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency><!--spring框架整合单元测试--><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>4.1.3.RELEASE</version><scope>test</scope></dependency></dependencies>
</project>  

  配置solr.properties文件中的solr服务器信息:  

solr.Url=http://127.0.0.1:8090/solr/products2
solr.maxRetries=2
solr.connectionTimeout=5000

  配置spring-solr-config.xml文件中的solrj客户端信息:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:task="http://www.springframework.org/schema/task"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-4.3.xsd http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task.xsd"><!--定义solr的server--><bean id="httpSolrServer" class="org.apache.solr.client.solrj.impl.HttpSolrServer"><constructor-arg index="0" value="${solr.Url}"/><!-- 设置响应解析器 --><property name="parser"><bean class="org.apache.solr.client.solrj.impl.XMLResponseParser"/></property><!-- 设置重试次数--><property name="maxRetries" value="${solr.maxRetries}"/><!-- 建立连接的最长时间 --><property name="connectionTimeout" value="${solr.connectionTimeout}"/></bean>
</beans>  

  配置spring-config.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:task="http://www.springframework.org/schema/task"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-4.3.xsd http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task.xsd"><!--整合solr服务器与客户端信息--><context:property-placeholder location="classpath:solr.properties"></context:property-placeholder><import resource="classpath:spring-solr-config.xml"></import><!--  为了让SpringIoC可以基于注解来做,注解支持--><context:annotation-config/><!--指明注解的扫描包,即将来去哪个包里找注解SpringIoC只管扫描service和dao即可--><context:component-scan base-package="com.itszt.DemoSS1"></context:component-scan>
</beans>

  测试代码如下:

package com.itszt.DemoSS1;import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.HttpSolrServer;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.common.SolrDocument;
import org.apache.solr.common.SolrDocumentList;
import org.apache.solr.common.SolrInputDocument;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import java.io.IOException;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Set;/*** maven整合spring与solr*/
@ContextConfiguration(locations = { "classpath:spring-config.xml" })
@RunWith(SpringJUnit4ClassRunner.class)
public class TestUpdate {@AutowiredHttpSolrServer httpSolrServer;@Testpublic void testInsertData() throws IOException, SolrServerException {SolrInputDocument solrInputDocument=new SolrInputDocument();solrInputDocument.addField("id","10086");solrInputDocument.addField("product_price","998");solrInputDocument.addField("product_name","大黄音乐");httpSolrServer.add(solrInputDocument);httpSolrServer.commit();}@Testpublic void testUpdateData() throws IOException, SolrServerException {SolrInputDocument solrInputDocument=new SolrInputDocument();solrInputDocument.addField("id","10086");solrInputDocument.addField("product_price","998888");solrInputDocument.addField("product_name","大黄音乐555");httpSolrServer.add(solrInputDocument);httpSolrServer.commit();}@Testpublic void testDelete() throws IOException, SolrServerException {//        httpSolrServer.deleteById("10086");httpSolrServer.deleteByQuery("product:大黄音乐");httpSolrServer.commit();}@Testpublic void testQuery() throws SolrServerException {SolrQuery solrQuery=new SolrQuery();solrQuery.setQuery("product:挂钩");QueryResponse queryResponse = httpSolrServer.query(solrQuery);SolrDocumentList results = queryResponse.getResults();for (SolrDocument result : results) {Collection<String> fieldNames = result.getFieldNames();for (String fieldName : fieldNames) {System.out.println(fieldName+"  ---->  "+result.get(fieldName));}}}@Testpublic void testQuery2() throws SolrServerException {        SolrQuery solrQuery=new SolrQuery();solrQuery.setQuery("product_name:家居");solrQuery.setFields("product_name,product_price");solrQuery.setFilterQueries("product_price:[10 TO 100]");solrQuery.setSort("product_price", SolrQuery.ORDER.asc);solrQuery.setHighlight(true);solrQuery.set("hl.fl","product_name");QueryResponse queryResponse = httpSolrServer.query(solrQuery);SolrDocumentList results = queryResponse.getResults();System.out.println("查询回来的数量:"+results.size());for (SolrDocument result : results) {Collection<String> fieldNames = result.getFieldNames();for (String fieldName : fieldNames) {System.out.println(fieldName+"  ---->  "+result.get(fieldName));System.out.println("------------------------------------");}}//获取高亮数据:System.out.println("获取高亮数据:");Map<String, Map<String, List<String>>> highlighting = queryResponse.getHighlighting();Set<String> set1 = highlighting.keySet();for (String key1 : set1) {System.out.println("key1---->"+key1);Map<String, List<String>> map2 = highlighting.get(key1);System.out.println("map2 = " + map2);Set<String> set2 = map2.keySet();for (String key2 : set2) {System.out.println("key2---->"+key2);}}}
}  

转载于:https://www.cnblogs.com/lizhangyong/p/8677921.html

Maven整合Spring与Solr相关推荐

  1. java 整合solr_SpringBoot整合Spring Data Solr

    此文不讲solr相关,只讲整合,内容清单如下 1. maven依赖坐标 2. application.properties配置 3. Java Config配置 1. maven坐标 org.spri ...

  2. MAVEN整合Spring+SpringMVC+Mybatis

    2016/1/20 14:47:28 原创,转载请注明出处 曾经看过<那些年我们一起追过的女孩>,片中有个比较经典的画面,至今记忆犹新,柯景腾多年后,做了一名作家,每天面对电脑码字,背后是 ...

  3. Spring Data Solr入门

    Spring Data Solr是Spring Data项目的扩展,该项目旨在简化Apache Solr在Spring应用程序中的使用. 请注意,这不是Spring(数据)或Solr的简介. 我认为您 ...

  4. Maven整合SSM框架(maven+spring+springmvc+mybatis)

    啊哈,终于到了用Maven整合SSM这个扑街含家产了.弄了整整一天才跑通.Mybatis的配置有些繁琐,跟之前学习的那个有点出去,加上Eclipse的Spring工具没有弄,配置的时候没有提示被搞蒙圈 ...

  5. 孙宇java_[JAVA] 孙宇老师Struts2+Hibernate4+Maven+EasyUI+SpringMvc+Spring+Mybatis+Maven整合课程...

    资源介绍 孙宇老师Struts2+Hibernate4+Maven+EasyUI+SpringMvc+Spring+Mybatis+Maven整合课程 ===============课程目录===== ...

  6. idea+springmvc+spring+mybatis+maven整合返回json数据web api-

    本人大三,第一次写博客,还有许多不懂得地方,如果有不当的地方 欢迎各位指教 项目地址:https://github.com/qq571831158/Springmvc-spring-mybatisDe ...

  7. 基于Maven+SpringMVC+Spring+MyBatis+Layui整合框架,超详细的SSM整合❤️

    人生有太多不如意,我们要学会去努力 参考文档:layUI文档:spring家族文档:mybatis文档 前言:SSM 整合 整合的思路是: 先创建spring框架 通过spring整合spring m ...

  8. Maven profile整合Spring profile

    在Maven和Spring中,都有profile这个概念.profile是用于区分各种环境的,例如开发环境.测试环境.正式环境等.Maven的profile用于在打包时根据指定环境替换不同环境的配置文 ...

  9. Spring Boot整合Spring Data Redis-整合步骤

    如何通过SpringBoot去整合我们的Redis,这里我们先对SpringBoot Redis做一个简单的介绍,其实SpringBoot Redis,和我们之前讲的Spring JPA都是Sprin ...

  10. Ehcache介绍及整合Spring实现高速缓存

    转载自 Ehcache介绍及整合Spring实现高速缓存 Ehcache介绍 EhCache 是一个纯Java的进程内缓存框架,具有快速.精干等特点,是Hibernate中默认的CacheProvid ...

最新文章

  1. 49 岁的红杉资本遭遇黑客攻击
  2. 日记 [2008年01月21日]
  3. C语言第一次实验报告
  4. main函数的参数详解,它们是何时何处传入的?(main函数的参数值是从操作系统命令行上获得的)
  5. 整体管理6个过程及相关重点
  6. switch…case语句注意事项
  7. wps电脑版_用好WPS这5个远程协同功能,“宅”家办公啥都不耽误,工作全搞定...
  8. java swagger ui 教程_java集成Swagger的步骤详解
  9. VMware中linux虚拟机无法全屏显示的解决方法(1080P分辨率调节)
  10. Linux安装phpstudy
  11. 【kali】一款黑客们都在使用的操作系统
  12. c++输入10个数/输入n个数,求其平均值
  13. 批量查询快递单号筛选出代收单号
  14. ETFE膜和PTFE膜不同之处以及特点-世来福
  15. 电力系统风力发电机组测控专用隔离变送器
  16. I love you not because of who you are, but because of who I am when I am with you.
  17. 2017“CCF科学技术奖”全公布,6位获奖人带来独家经验分享
  18. 西门子S7-200PLC系列(二)
  19. 特斯联门禁支持nfc_特斯联lite钥匙怎么分享
  20. 十月百度,阿里巴巴,迅雷搜狗最新面试七十题(更新至10.17)

热门文章

  1. mysql 解压版安装及DATA初始化 root用户密码修改
  2. 山西省吕梁市职称计算机考试,山西吕梁考点2012年职称计算机考试时间通知
  3. python数组下标用变量_你所不知道的Python奇技淫巧13招【实用】
  4. linux实训项目有哪些内容,实训项目2__Linux基本命令(带参考答案)
  5. 经典神经网络 -- DPN : 设计原理与pytorch实现
  6. c语言创建若干个成绩栏目,2015年计算机二级《C语言》考试上机测试题(6)
  7. intellij中使用git插件将项目上传到码云
  8. Fenzo:来自Netflix基于Java语言的Mesos调度器
  9. 戴文的Linux内核专题:08内核配置(4)
  10. 一路风景之川藏线徒步笔记