版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wangwei_620/article/details/85038871
一.重新创建一个项目用于导入数据库的数据到solr索引库中
1.添加相关jar包
2.配置相关的配置文件
3.编写基于junit的测试文件
4.编写scheme.xml中配置的域字段与实体的映射关系
@Field
private Long id;
@Field("item_title")
private String title;
private String sellPoint;
@Field("item_price")
private BigDecimal price;
private Integer stockCount;
private Integer num;
private String barcode;
@Field("item_image")
private String image;
private Long categoryid;
private String status;
private Date createTime;
@Field("item_updatetime")
private Date updateTime;
private String itemSn;
private BigDecimal costPirce;
private BigDecimal marketPrice;
private String isDefault;
@Field("item_goodsid")
private Long goodsId;
private String sellerId;
private String cartThumbnail;
@Field("item_category")
private String category;
@Field("item_brand")
private String brand;
private String spec;
@Field("item_seller")
private String seller;
二.增删改查以及分页,条件查询
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:spring/applicationContext-solr.xml")
public class SolrTest {
@Autowired
private SolrTemplate solrTemplate;
/**
* 添加商品到商品库
* 修改都是调用这个方法 saveBean方法
*/
@Test
public void addTest(){
TbItem item = new TbItem();
item.setId(1L);
item.setTitle("苹果maxs 移动4G 64G");
item.setSeller("苹果旗舰店");
item.setBrand("苹果");
solrTemplate.saveBean(item);
//必须提交
solrTemplate.commit();
}
/**
* 通过id查询
*/
@Test
public void findByIdTest(){
TbItem byId = solrTemplate.getById(1L, TbItem.class);
System.out.println(byId.getId()+" " +byId.getTitle()+" "+byId.getBrand());
}
/**
* 通过id删除
*/
@Test
public void deleteTest(){
solrTemplate.deleteById("1");
solrTemplate.commit();
}
/**
* 删除所有数据
*/
@Test
public void deleteAllTest(){
SolrDataQuery query = new SimpleQuery("*:*");
solrTemplate.delete(query);
solrTemplate.commit();
}
/**
* 批量添加数据
*/
@Test
public void addAllTest(){
ArrayList list = new ArrayList();
for (long i = 1; i <= 100; i++) {
TbItem item = new TbItem();
item.setId(i);
item.setTitle(i+"苹果maxs 移动4G 64G");
item.setSeller("苹果"+i+"号旗舰店");
item.setBrand("苹果");
list.add(item);
//solrTemplate.saveBean(item);
//必须提交
// solrTemplate.commit();
}
solrTemplate.saveBeans(list);
solrTemplate.commit();
}
/**
* 分页查询
*/
@Test
public void findPageTest(){
//设置查询对象
Query query = new SimpleQuery("*:*");
//设置分页条件
query.setOffset(2);//设置分页查询起始值, 默认值 0 ,从第一天开始
query.setRows(5);//每页查询记录数
ScoredPage<TbItem> tbItems = solrTemplate.queryForPage(query, TbItem.class);
System.out.println("总记录数:"+tbItems.getTotalElements());
System.out.println("总页数"+tbItems.getTotalPages());
//当前页数据列表
List<TbItem> content = tbItems.getContent();
for (TbItem item : content) {
System.out.println(item.getId()+" "+item.getTitle()+" "+item.getBrand()+" "+item.getSeller());
}
}
/**
* 条件查询 需求查询 标题含有9 商家含有 5
*/
@Test
public void findMultilTest(){
//设置查询对象 注意一定要有查询条件*:*
Query query = new SimpleQuery("*:*");
//构建查询条件
//支持链式编程
Criteria criteria = new Criteria("item_title").contains("9").and("item_seller").contains("5");
//把构建好的查询对象赋值给查询对象
query.addCriteria(criteria);
ScoredPage<TbItem> tbItems = solrTemplate.queryForPage(query, TbItem.class);
System.out.println("总记录数:"+tbItems.getTotalElements());
System.out.println("总页数"+tbItems.getTotalPages());
//当前页数据列表
List<TbItem> content = tbItems.getContent();
for (TbItem item : content) {
System.out.println(item.getId()+" "+item.getTitle()+" "+item.getBrand()+" "+item.getSeller());
}
}
}