使用spring date solr框架进行相关的solr增加,删除,注解条件查询!


需要的jar包有
<dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-solr</artifactId>
    <version>1.5.5.RELEASE</version>
</dependency>



<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-test</artifactId>
    <version>4.2.4.RELEASE</version>
</dependency>

<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.9</version>
</dependency>
1.下面的代码需要安装一个windows版本的solr,具体怎么安装自己百度!
2.还需要在配置了“域”以后注入到一个实体类里面来不然没有办法操作




package test;

import cn.itcast.pojo.TbItem;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.solr.core.SolrCallback;
import org.springframework.data.solr.core.SolrTemplate;

import org.springframework.data.solr.core.query.Criteria;
import org.springframework.data.solr.core.query.SimpleQuery;
import org.springframework.data.solr.core.query.result.ScoredPage;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import sun.applet.resources.MsgAppletViewer_it;

import javax.management.Query;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations="classpath:applicationContext-solr.xml")
public class TestTemplate {

    @Autowired
    private SolrTemplate solrTemplate;//注入操作类

    @Test
    public void   testAdd(){
        TbItem item=new TbItem();
        item.setId(1L);

        item.setBrand("魅族");

        item.setCategory("大哥大");

        item.setCategoryid(1L);

        item.setSeller("华为2号专卖店");

        item.setTitle("魅族s6");

        item.setPrice(new BigDecimal(2000));

        solrTemplate.saveBean(item);

        solrTemplate.commit();
    }
    //按主键查询
    @Test
    public void testFindOne(){
        TbItem item=solrTemplate.getById(1,TbItem.class);
        System.out.println(item.getTitle());
    }

    /**
     * 按主键删除
     */
    @Test
    public void testDelete(){
      solrTemplate.deleteById("1");
      solrTemplate.commit();
    }


    /**
     * 首先循环插入100条测试数据
     */
    @Test
    public void testAddList(){
        List<TbItem>list=new ArrayList<>();


        for (int i=0;i<100;i++){
            TbItem item=new TbItem();
            item.setId(i+1L);
            item.setBrand("华为");
            item.setCategory("手机");
            item.setGoodsId(1L);
            item.setSeller("华为2号专卖店");
            item.setTitle("华为Mate"+i);
            item.setPrice(new BigDecimal(2000+i));
            list.add(item);
        }
        solrTemplate.saveBeans(list);
        solrTemplate.commit();
    }

    /**
     * 编写分页查询测试代码
     */
    @Test
    public void testPageQuery(){
        SimpleQuery query=new SimpleQuery("*:*");
        query.setOffset(20);//开始索引(默认0)
        query.setRows(20);//每页记录数(默认10)
        ScoredPage<TbItem> page = solrTemplate.queryForPage(query, TbItem.class);
        System.out.println("总记录数:"+page.getTotalElements());
        List<TbItem> list = page.getContent();
        showList(list);

    }

    //显示记录数据
    private void showList(List<TbItem>list){
        for(TbItem item:list){
            System.out.println(item.getTitle()+"\t"+item.getPrice());
        }
    }


    /**
     *  Criteria 用于对条件的封装:
     */
    @Test
    public void testPageQueryMutil(){
        SimpleQuery query=new SimpleQuery("*:*");
        Criteria criteria=new Criteria("item_title").contains("2");
        criteria=criteria.and("item_title").contains("5");
        query.addCriteria(criteria);
        //query.setOffset(20);//开始索引(默认0)
        //query.setRows(20);//每页记录数(默认10)
        ScoredPage<TbItem> page = solrTemplate.queryForPage(query, TbItem.class);
        System.out.println("总记录数:"+page.getTotalElements());
        List<TbItem> list = page.getContent();
        showList(list);
    }

    /**
     * 删除全部数据
     */
    @Test
    public void testDeleteAll(){
        SimpleQuery query=new SimpleQuery("*:*");
        solrTemplate.delete(query);
        solrTemplate.commit();
    }





}

猜你喜欢

转载自blog.csdn.net/weixin_41244495/article/details/82796041
今日推荐