電商專案day10-1(Spring-data-Solr入門demo)
阿新 • • 發佈:2018-12-20
一.重新建立一個專案用於匯入資料庫的資料到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()); } } }