Spring Boot集成Sorl搜索客户端的实现代码
程序员文章站
2024-02-14 10:15:40
apache solr是一个搜索引擎。spring boot为solr客户端库及spring data solr提供的基于solr客户端库的抽象提供了基本的配置。sprin...
apache solr是一个搜索引擎。spring boot为solr客户端库及spring data solr提供的基于solr客户端库的抽象提供了基本的配置。spring boot提供了一个用于聚集依赖的spring-boot-starter-data-solr 'starter pom'。
引入spring-boot-starter-data-solr依赖,在pom.xml配置文件中增加如下内容(基于之前章节“spring boot 构建框架”中的pom.xml文件):
<dependency> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-data-solr</artifactid> </dependency>
可以像其他spring beans一样注入一个自动配置的solrserver实例。默认情况下,该实例将尝试使用localhost:8983/solr连接一个服务器。
@component public class mybean { private solrserver solr; @autowired public mybean(solrserver solr) { this.solr = solr; } // ... }
如果添加一个自己的solrserver类型的@bean,它将会替换默认的。
应用集成solr搜索客户端案例
spring boot的配置是集中性的(可以拆分成不同的配置文件),因此在application.properties文件中添加以下配置:
# solr (solrproperties) spring.data.solr.host=http://localhost:8983/solr #spring.data.solr.zkhost= spring.data.solr.repositories.enabled=true
使用spring-data-solr类似spring-data-jpa,配置@bean接受zk服务器相关属性(自定义的配置方式,可以直接使用默认方式)
import org.springframework.boot.context.properties.configurationproperties; @configurationproperties(prefix="spring.solr") public class solrconfig { private string host; private string zkhost; private string defaultcollection; public string getdefaultcollection() { return defaultcollection; } public void setdefaultcollection(string defaultcollection) { this.defaultcollection = defaultcollection; } public string gethost() { return host; } public void sethost(string host) { this.host = host; } public string getzkhost() { return zkhost; } public void setzkhost(string zkhost) { this.zkhost = zkhost; }
配置solrserver服务,具体代码如下:
@configuration @enableconfigurationproperties(solrconfig.class) public class solrclientconfig { @autowired private solrconfig solrconfig; private cloudsolrserver solrserver; @predestroy public void close() { if (this.solrserver != null) { try { this.solrserver.close(); } catch (ioexception e) { e.printstacktrace(); } } } @bean public cloudsolrserver solrserver(){ if (stringutils.hastext(this.solrconfig.getzkhost())) { solrserver = new cloudsolrserver(this.solrconfig.getzkhost()); solrserver.setdefaultcollection(this.solrconfig.getdefaultcollection()); } return this.solrserver; } }
测试solr查询,具体代码如下:
@restcontroller public class hellocontroller { @autowired private cloudsolrserver solrserver; public string hello(){ return"say hello"; } @requestmapping("test") public void test(){ modifiablesolrparams params = new modifiablesolrparams(); params.add("q","demo:素文宅博客"); params.add("ws","json"); params.add("start","0"); params.add("rows","10"); queryresponse response = null; try{ response=solrserver.query(params); solrdocumentlist results = response.getresults(); for (solrdocument document : results) { system.out.println( document.getfieldvalue("demo")); system.out.println(document.getfieldvalue("id")); } }catch(exception e){ e.getstacktrace(); } system.out.println(response.tostring()); } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
上一篇: JAVA IO API使用详解
推荐阅读
-
Spring Boot集成Sorl搜索客户端的实现代码
-
Spring Boot集成ElasticSearch实现搜索引擎的示例
-
Spring Boot集成spring-boot-devtools开发时实现热部署的方式
-
Spring-Boot 集成Solr客户端的详细步骤
-
Spring boot + mybatis + Vue.js + ElementUI 实现数据的增删改查实例代码(一)
-
Spring boot + mybatis + Vue.js + ElementUI 实现数据的增删改查实例代码(二)
-
Spring boot集成Kafka+Storm的示例代码
-
spring boot实现软删除的示例代码
-
Spring boot集成Kafka+Storm的示例代码
-
Spring boot集成RabbitMQ的示例代码