1.在中央仓库找对对应版本的Solrj的坐标
2.整合Spring
高版本的solj的API没有太大的改变只是将连接的进行改变
<!-- 创建连接 -->
<bean class="org.apache.solr.client.solrj.impl.CloudSolrClient.Builder" id="emptyBuilder"/>
<bean factory-bean="emptyBuilder" factory-method="withZkHost" id="builder">
<constructor-arg value="192.168.177.132:2181,192.168.177.132:2183,192.168.177.132:2183" type="java.lang.String"/>
</bean>
<!-- 连接的SolrCloud实例 注意在进行值注入的时候使用的cloudSolrServer -->
<bean factory-bean="builder" factory-method="build" id="cloudSolrServer">
<property name="defaultCollection" value="connection1"/>
</bean>
3.服务端
@Autowired
private TbItemImportMapper tbItemImportMapper;
@Autowired
private CloudSolrClient cloudSolrServer;
@Override
public EgoResult importSolr() throws Exception {
int p = 1;
while(true) {
PageHelper.startPage(p, 1000);
List<ResultImport> solrList = this.tbItemImportMapper.importsSolr();
if(solrList == null || solrList.size()==0) {
break;
}
/**
* 循环数据的导入
*/
for (ResultImport searchItem: solrList) {
SolrInputDocument document = new SolrInputDocument ();
document.addField("id", searchItem.getId());
document.addField("title", searchItem.getTitle());
document.addField("sell_point", searchItem.getSell_point());
document.addField("price",searchItem.getPrice());
document.addField("image", searchItem.getImage());
document.addField("category_name", searchItem.getCategory_name());
cloudSolrServer.add(document);
}
cloudSolrServer.commit();
p = p+1;//进行第二页的数据导入
}
return EgoResult.ok();
}
4.消费端调用即可
@Autowired
private TbItemImportService tbItemImportServiceProxy;
@Override
public EgoResult importSolr() {
try {
EgoResult importSolr = this.tbItemImportServiceProxy.importSolr();
return importSolr;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
5.页面调用进行数据的导入