Solrj实现导入数据到SolrCloud

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.页面调用进行数据的导入
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值