gpt4 book ai didi

java - 在 spring-boot-starter-data-solr 中启用 schemaCreationSupport

转载 作者:行者123 更新时间:2023-12-01 09:26:31 25 4
gpt4 key购买 nike

我使用 spring-boot-starter-data-solr 并希望利用 Spring Data Solr 的 schmea cration 支持,如 documentation 中所述。 :

Automatic schema population will inspect your domain types whenever the applications context is refreshed and populate new fields to your index based on the properties configuration. This requires solr to run in Schemaless Mode.

但是,我无法实现这一目标。据我所知,Spring Boot starter 没有启用 @EnableSolrRepositories 注释上的 schemaCreationSupport 标志。所以我尝试的是以下内容:

@SpringBootApplication
@EnableSolrRepositories(schemaCreationSupport = true)
public class MyApplication {
@Bean
public SolrOperations solrTemplate(SolrClient solr) {
return new SolrTemplate(solr);
}
}

但是在 Wireshark 中查看,通过存储库保存新实体时,我看不到对 Solr Schema API 的任何调用。

这是否有效,或者我错过了什么?我正在使用 Solr 6.2.0 和 Spring Boot 1.4.1。

最佳答案

我也遇到了同样的问题。经过一些调试后,我找到了架构创建(或更新)根本没有发生的根本原因:

通过使用@EnableSolrRepositories注解,Spring 扩展会将工厂 bean 添加到创建 SolrTemplate 的上下文中在存储库中使用的。该模板初始化 SolrPersistentEntitySchemaCreator应该执行创建/更新

public void afterPropertiesSet() {

if (this.mappingContext == null) {
this.mappingContext = new SimpleSolrMappingContext(
new SolrPersistentEntitySchemaCreator(this.solrClientFactory)
.enable(this.schemaCreationFeatures));
}

// ...
}

问题是标志 schemaCreationFeatures (启用创建者)在工厂调用 afterPropertiesSet() 之后设置,所以创作者不可能完成它的工作。

我将在 spring-data-solr 问题跟踪器中创建一个问题。现在没有看到任何解决方法,其他要么具有 spring-data 的自定义 fork /构建,要么扩展一堆 spring-class 并尝试通过使用之前设置标志(但对此是否可以完成表示怀疑)。

关于java - 在 spring-boot-starter-data-solr 中启用 schemaCreationSupport,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39791966/

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