利用solrJ向索引库导入数据

需求:将MySQL中的数据导入到solr索引库
定义实体类:
public class SearchItem implements Serializable{

	private String id;
	private String title;
	private String sell_point;
	private long price;
	private String image;
	private String category_name;
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getTitle() {
		return title;
	}
	public void setTitle(String title) {
		this.title = title;
	}
	public String getSell_point() {
		return sell_point;
	}
	public void setSell_point(String sell_point) {
		this.sell_point = sell_point;
	}
	public long getPrice() {
		return price;
	}
	public void setPrice(long price) {
		this.price = price;
	}
	public String getImage() {
		return image;
	}
	public String[] getImages() {
		if(image != null && !"".equals(image)) {
			String[] images = image.split(",");
			return images;
		}
		return null;
	}
	public void setImage(String image) {
		this.image = image;
	}
	public String getCategory_name() {
		return category_name;
	}
	public void setCategory_name(String category_name) {
		this.category_name = category_name;
	}
	public SearchItem(String id, String title, String sell_point, long price, String image, String category_name) {
		super();
		this.id = id;
		this.title = title;
		this.sell_point = sell_point;
		this.price = price;
		this.image = image;
		this.category_name = category_name;
	}
	public SearchItem() {
		super();
		// TODO Auto-generated constructor stub
	}
	@Override
	public String toString() {
		return "SearchItem [id=" + id + ", title=" + title + ", sell_point=" + sell_point + ", price=" + price
				+ ", image=" + image + ", category_name=" + category_name + "]";
	}
	

定义mapper查询数据库:

List<SearchItem> selectAllItem();
<select id="selectAllItem" resultType="com.e3mall.search.SearchItem">
SELECT
	a.id,
	a.title,
	a.sell_point,
	a.price,
	a.image,
	b.`name` category_name
FROM
	tb_item a
LEFT JOIN tb_item_cat b ON a.cid = b.id
WHERE a.`status`=1
</select>
</mapper>


利用solrJ向索引库导入数据:

/**
	 * 向索引库添加数据
	 */
	public E3Result saveSearch(){
		try {
		//从数据库中查询数据
		List<SearchItem> selectAllItem = searchMapper.selectAllItem();
		for (SearchItem searchItem : selectAllItem) {
			// 创建一个文档对象SolrInputDocument
			SolrInputDocument document = new SolrInputDocument();
			// 向文档对象中添加域,文档中必须包含一个id域,所有的域的名称必须在schema.xml中定义
			document.addField("id", searchItem.getId());
			document.addField("item_title", searchItem.getTitle());
			document.addField("item_sell_point", searchItem.getSell_point());
			document.addField("item_price", searchItem.getPrice());
			document.addField("item_image", searchItem.getImage());
			document.addField("item_category_name", searchItem.getCategory_name());
			// 把文档写入索引库
			solrServer.add(document);
		}
		// 提交
		solrServer.commit();
		//返回成功
		return E3Result.ok();
		} catch (Exception e) {
			// TODO: handle exception
			return E3Result.build(500, "导入失败!");
		}
	}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值