最近想把手头的Solr4换成Solr8,就遇到各种各样的问题。因为Solrj4和Solrj8创建链接用的类不同,所以Spring配置文件也要修改,本想偷懒网上找个Solrj7的配置用,结果看了俩:
<bean id="solr" class="org.apache.solr.client.solrj.impl.HttpSolrClient">
<constructor-arg name="builder" value="builder" />
<property name="baseURL" value="${SOLR.URL}" />
</bean>
咋回事啊?为啥给属性“builder”一个字符串“builder”?算了再看看别的吧
<bean id="httpSolrClient" class="org.apache.solr.client.solrj.impl.HttpSolrClient">
<constructor-arg name="builder" value="${SOLR.URL}"/>
</bean>
下面这个原文还附了一段源码分析,大概是这样:
构造方法使用HttpSolrClient(Builder builder),builder是作为一个参数传入的Builder对象。再看Builder,Builder(String baseSolrUrl),“baseSolrUrl”就是个字符串。原文作者称是可以使用的,但是看起来总觉得很奇怪,最后我还是去翻了源码。