gpt4 book ai didi

Spring Boot集成Sorl搜索客户端的实现代码

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 24 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章Spring Boot集成Sorl搜索客户端的实现代码由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

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文件):

?
1
2
3
4
< dependency >
< groupId >org.springframework.boot</ groupId >
< artifactId >spring-boot-starter-data-solr</ artifactId >
</ dependency >

可以像其他Spring beans一样注入一个自动配置的SolrServer实例。默认情况下,该实例将尝试使用localhost:8983/solr连接一个服务器.

?
1
2
3
4
5
6
7
8
9
@Component
public class MyBean {
   private SolrServer solr;
   @Autowired
   public MyBean(SolrServer solr) {
     this .solr = solr;
   }
   // ...
}

如果添加一个自己的SolrServer类型的@Bean,它将会替换默认的.

应用集成Solr搜索客户端案例 。

Spring Boot的配置是集中性的(可以拆分成不同的配置文件),因此在application.properties文件中添加以下配置:

?
1
2
3
4
# 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服务器相关属性(自定义的配置方式,可以直接使用默认方式) 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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服务,具体代码如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
@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查询,具体代码如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
@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());
  }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我.

原文链接:https://blog.yoodb.com/yoodb/article/detail/1423 。

最后此篇关于Spring Boot集成Sorl搜索客户端的实现代码的文章就讲到这里了,如果你想了解更多关于Spring Boot集成Sorl搜索客户端的实现代码的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com