一.重新建立一個項目用于導入資料庫的資料到solr索引庫中
1.添加相關jar包
2.配置相關的配置檔案
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNfRHLGZkRGZkRfJ3bs92YsYTMfVmepNHL3lkaOZGbXp1Mk1mYoR2MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL4YDO2AjNzcTM2EjMxgTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
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());
}
}
}