淘淘商城新增商品删除商品自动同步到solr服务器

一、分析

同步solr服务器中的信息,需要以下信息(前提已经配置好solr服务器)需要用到的字段:

1、商品id
2、商品title
3、卖点
4、价格
5、商品图片
6、商品分类名称
7、商品描述

在添加商品的同时,只要把信息提交到solr就行。

二、配置

1、把taotao-search中的solr的配置文件applicationContext-solr.xml,复制到taotao-manager-web的resources的spring文件下
这里写图片描述
2、在resource.properties文件中填入solr服务器地址

#solr地址,ip改成自己solr服务器的地址
SOLR.SERVER.URL=http://ip:8080/solr

这里写图片描述

三、新增商品同步solr

1、首先在taotao- manager-service的pom.xml文件中添加solr的依赖,代码如下

        <!-- solr客户端 -->
        <dependency>
            <groupId>org.apache.solr</groupId>
            <artifactId>solr-solrj</artifactId>
        </dependency>

这里写图片描述
2、在商品添加的时候,同步到solr服务器中,首先打开商品添加的代码:
这里写图片描述

  • 打开taotao- manager-service中的ItemServiceImpl类
  • 添加SolrService注入,代码如下

    @Autowired
    private SolrServer solrServer;

    3、在ItemServiceImpl类中的createItem()方法中,添加如下代码填写在代码 return TaotaoResult.ok();前就行:

    //*********************solr信息同步*****
        //查询商品类目
        TbItemCat itemCat=new TbItemCat(); 
        itemCat=itemCatMapper.selectByPrimaryKey(item.getCid());    //因为item中没有商品类目的名字,只有cid,所以需要用cid去查询到类目名称   
        try {           
            // 把商品信息写入索引库
                // 创建一个SolrInputDocument对象
                SolrInputDocument document = new SolrInputDocument();
                document.setField("id", item.getId());
                document.setField("item_title", item.getTitle());
                document.setField("item_sell_point", item.getSellPoint());
                document.setField("item_price", item.getPrice());
                document.setField("item_image", item.getImage());
                document.setField("item_category_name", itemCat.getName());
                document.setField("item_desc", desc);
                // 写入索引库
                solrServer.add(document);
    
            // 提交修改
            solrServer.commit();
        } catch (Exception e) {
            e.printStackTrace();
            return TaotaoResult.build(500, ExceptionUtil.getStackTrace(e));
        }
    
        //********************************

四、删除商品同步solr

  • 打开taotao- manager-service中的ItemServiceImpl类
  • 在ItemServiceImpl类中的deleteItem()方法中,添加如下代码

    String id=String.valueOf(itemId);  //因为solrServer的deleteById接受的是String类型的数据,所以需要转换下
    
    try {
        solrServer.deleteById(id);
        solrServer.commit(); 
    } catch (SolrServerException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    

    这里写图片描述

四、测试

新增商品信息,删除商品信息,测试查询即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值