Apache Solr是一个搜索引擎.Spring引导为Solr客户端库及弹簧数据Solr提供的基于Solr客户端库的抽象提供了基本的配置.Spring引导提供了一个用于聚集依赖的spring-boot-starter-data-solr起动POM。
引入spring-boot-starter-data-solr依赖,在砰的一声。xml配置文件中增加如下内容(基于之前章节“春引导构建框架”中的砰的一声。xml文件):
& lt; dependency> & lt; groupId> org.springframework.boot & lt; artifactId> spring-boot-starter-data-solr & lt;/dependency>
可以像其他Spring bean一样注入一个自动配置的SolrServer实例。默认情况下,该实例将尝试使用localhost: 8983/solr连接一个服务器。
@ component 公开课MyBean { 私人SolrServer solr; @ autowired 公共MyBean (SolrServer solr) { 这一点。solr=solr; }//? } >之前如果添加一个自己的SolrServer类型的@ bean,它将会替换默认的。
<强>应用集成Solr搜索客户端案例强>
弹簧引导的配置是集中性的(可以拆分成不同的配置文件),因此在应用程序。属性文件中添加以下配置:
# 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服务器相关属性(自定义的配置方式,可以直接使用默认方式)
进口org.springframework.boot.context.properties.ConfigurationProperties; @ConfigurationProperties(前缀=皊pring.solr”) 公开课SolrConfig { 私人字符串主机; 私人字符串zkHost; 私人字符串defaultCollection; 公共字符串getDefaultCollection () { 返回defaultCollection; } 公共空间setDefaultCollection(字符串defaultCollection) { this.defaultCollection=defaultCollection; } 公共字符串getHost () { 返回主机; } 公共空间setHost (String主机){ 这一点。主机=主机; } 公共字符串getZkHost () { 返回zkHost; } 公共空间setZkHost(字符串zkHost) { 这一点。zkHost=zkHost; } >之前配置SolrServer服务,具体代码如下:
@ configuration @EnableConfigurationProperties (SolrConfig.class) 公开课SolrClientConfig { @ autowired 私人SolrConfig SolrConfig; 私人CloudSolrServer solrServer; @PreDestroy 公共空间close () { 如果这一点。solrServer !=null) { 尝试{ this.solrServer.close (); }捕捉(IOException e) { e.printStackTrace (); } } } @ bean 公共CloudSolrServer SolrServer () { 如果(StringUtils.hasText (this.solrConfig.getZkHost ())) { solrServer=new CloudSolrServer (this.solrConfig.getZkHost ()); solrServer.setDefaultCollection (this.solrConfig.getDefaultCollection ()); } 返回this.solrServer; } } >之前测试solr查询,具体代码如下:
@RestController 公开课HelloController { @ autowired 私人CloudSolrServer solrserver; 公共字符串hello () { 返回“打招呼”; } @RequestMapping(“测试”) 公共空白测试(){ ModifiableSolrParams params=new ModifiableSolrParams (); params.add(“问”、“演示:素文宅博客”); params.add (“ws”、“json”); params.add(“开始”、“0”); params.add(“行”,“10”); QueryResponse响应=零; 尝试{ 响应=solrserver.query (params); SolrDocumentList结果=response.getResults (); (SolrDocument文档:结果){ system . out。println (document.getFieldValue(“演示”)); System.out.println (document.getFieldValue (" id ")); } }捕捉(异常e) { e.getStackTrace (); } System.out.println (response.toString ()); } } >之前以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
弹簧引导集成瑞安搜索客户端的实现代码