SolrTemplate 和 SolrClient 有什么区别?

What is the difference between SolrTemplate and SolrClient?

我正在记录我在 solr apache 的 Spring 数据教程之后编写的代码,我意识到我不知道 solrTemplate 和 [=12= 之间的区别] ?

我正在记录以下代码:

@Configuration
@EnableSolrRepositories(basePackages = {"com.anouar.solr.nomenclaturespringdatasolr.repository", 
"com.anouar.solr.nomenclaturespringdatasolr.dataImportHandler"},
                    namedQueriesLocation = "classpath:solr-named-queries.properties")

public class SolrConfig {


@Value("${spring.data.solr.host}")
String solrURL;

/**
 * returns the bean that establishes the connection with Solr through port 8983
 *
 * @return SolrClient
 *
 * **/

@Bean
public SolrClient solrClient() {
    return new HttpSolrClient.Builder(solrURL).build();
}

/**
 *
 * @param client the bean that is connected to Solr through port 8983
 *
 * **/

@Bean
public SolrTemplate solrTemplate(SolrClient client) throws Exception {
    return new SolrTemplate(client);
   }
}

以下是 SolrClient

的 apache 文档中的描述
Abstraction through which all communication with a Solr server may be routed

这意味着您所有的 solr 调用都将通过 solrClient 进行路由,因此我们需要将 solr 服务器地址、端口(也很少有其他)配置为 solrClient

其中 solrTemplate 用于查询、计数等 solr 操作。 solrTemplate 将使用 solrClient 这就是为什么在配置 solrTemplate 时, solrClient 被传递。