我的apache solr具有多个核心,例如货币,国家等。因此,使用Spring Data Solr可以从一个核心中检索信息。我现在已经获得了针对“ currency”核心的XML配置。如果我想查询“国家”核心,该如何设置?
<!-- Enable Solr repositories and configure repository base package -->
<solr:repositories base-package="com.acme.repository" solr-template-ref="solrCurrencyTemplate"/>
<solr:solr-server id="solrCurrencyServer" url="http://localhost:8983/solr/currency"/>
<bean id="solrCurrencyTemplate" class="org.springframework.data.solr.core.SolrTemplate">
<constructor-arg ref="solrCurrencyServer" />
</bean>
并将存储库定义为
@Repository
public interface CurrencyRepository extends SolrCrudRepository<Currency, String> {
}
从我的服务中我可以做到这一点
@Override
public List<Currency> getCurrencies() {
Page<Currency> currencies = (Page<Currency>) currencyRepository.findAll();
return currencies.getContent();
}
我也尝试过使用@SolrDocument(solrCoreName =“ currency”),但是这行不通。
@SolrDocument(solrCoreName = "currency")
public class Currency {
public static final String FIELD_CURRENCY_NAME = "currency_name";
public static final String FIELD_CURRENCY_CODE = "currency_code";
public static final String FIELD_DECIMALS = "decimals";
@Id
@Field(value = FIELD_CURRENCY_CODE)
private String currencyCode;
//currency_name,decimals
@Field(value = FIELD_CURRENCY_NAME)
private String currencyName;
@Field(value = FIELD_DECIMALS)
private String decimals;
...
...
...
}
我需要尽快的帮助…否则,我将不得不回到RestTemplate解决方案:-(
希望有人能帮忙。谢谢通用
以为我会分享:最近我们花大量时间配置多个内核。我们是用Java而不是xml做的。
作为spring @configuration的一部分,添加以下内容。
@Bean(name="solrCore1Template")
public SolrTemplate solrCore1Template() throws Exception {
EmbeddedSolrServer embeddedSolrServer = new EmbeddedSolrServer(getCoreContainer(), "core1");
return new SolrTemplate(embeddedSolrServer);
}
@Bean(name="solrCore2Template")
public SolrTemplate solrCore2Template() throws Exception {
EmbeddedSolrServer embeddedSolrServer = new EmbeddedSolrServer(getCoreContainer(), "core2");
return new SolrTemplate(embeddedSolrServer);
}
@Bean
@Scope
public CoreContainer getCoreContainer() throws FileNotFoundException{
String dir = <path_to_solr_home>;
System.setProperty("solr.solr.home", dir);
CoreContainer.Initializer initializer = new CoreContainer.Initializer();
return initializer.initialize();
}
并且要使用每个模板,请在服务类中使用以下内容。
@Resource
private SolrTemplate solrCore1Template;
可以使用以下代码将嵌入式服务器替换为HTTP。
HttpSolrServer httpSolrServer = new HttpSolrServer(getSolrURL());
return new SolrTemplate(httpSolrServer, "core1");
希望这可以帮助。我知道这是一个很晚才回答的问题。
我想知道,当我们为客户提供新的更新时,是否有丢失这些文件的风险。如果有更好的解决方案,上传文件和获取文件链接之后,与.NET core请告诉我:)
我有多核的apache solr,例如货币、国家等。。。因此,使用Spring Data Solr,我可以从一个核心检索信息。我现在已经获得了针对“货币”核心的XML配置查询。如果我想查询“国家”核心,我该如何设置? 并将存储库定义为 通过我的服务,我可以做到这一点 我也尝试过使用@SolrDocument(solrCoreName=“currency”),但这行不通。 我需要这个尽快的帮助...
我想使用SpringDataSolr在一个服务中访问多个/2个repo。从SpringDataSolr多核和存储库中,我知道“不幸的是,通过名称空间配置支持多核是一个开放的问题”。 你能帮我举个例子吗?我怎样才能创建自定义回购协议? 我的应用程序Context.xml有两个Solr模板定义如下: 我有以下回购协议 最后,服务如下所示: 有人能告诉我如何修改代码以实现SpringDataSolrWi
问题内容: 每当进程崩溃时,我都想创建一个核心转储。目前,我正在采用这种方法: 使用gcc / g ++的“ -g”构建程序的特殊“调试”版本。 执行“ ulimit -c unlimited” 现在,只要程序崩溃,我们就获得核心转储。 但我想减少步骤数,以便: 应始终创建核心转储。即使是“发布”版本。不应要求用户手动执行命令“ ”。 该核心转储的回溯应该能够给出调用的文件,函数,行号。那是人类可
我用wiringPiISR#得到了一个核心转储 Java运行时环境检测到一个致命错误:#Internal error(os_linux_zero.cpp:254),PID=6552,TID=1866855520致命错误:捕获未处理信号11
波姆。xml 这是一个java配置文件。 这是redis服务器的配置文件 存储库 > Rest 创建: 阅读: 数据保存和读取相当好。我假设它们被保存到一个具有内存实现的redis数据库中,尽管我没有专门对此进行配置。我推断是因为当我通过redis cli发送命令时,我不会通过查询的键获得答案。 但是,当应用程序运行时,数据会被保存并读取。 停止应用程序然后启动应用程序后,数据丢失。 此外,我使用