Java -- springboot 配置 Solr

1、配置依赖

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-data-solr</artifactId>
</dependency>

2、application.properties

spring.data.solr.host=http://192.168.147.130:8983/solr

3、配置文件

package com.vim.common.config;

import org.apache.solr.client.solrj.SolrClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.solr.core.SolrTemplate;

@Configuration
public class BeanConfig {

    @Autowired
    private SolrClient solrClient;

    //此处专门针对每个core设置一个 template 实例
    @Bean(name = "goodsSolrTemplate")
    public SolrTemplate goodsSolrTemplate(){
        return new SolrTemplate(solrClient, "goods");
    }
}

4、实体 model

package com.vim.modules.model;

import org.apache.solr.client.solrj.beans.Field;
import org.springframework.data.solr.core.mapping.SolrDocument;

import java.io.Serializable;

@SolrDocument(solrCoreName = "goods")
public class Goods implements Serializable{

    @Field
    private String id;
    @Field
    private String goodsName;
    @Field
    private Double goodsPrice;
    @Field
    private String goodsTitle;
    @Field
    private Long goodsStock;

    private String startPrice;
    private String endPrice;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getGoodsName() {
        return goodsName;
    }

    public void setGoodsName(String goodsName) {
        this.goodsName = goodsName;
    }

    public Double getGoodsPrice() {
        return goodsPrice;
    }

    public void setGoodsPrice(Double goodsPrice) {
        this.goodsPrice = goodsPrice;
    }

    public String getGoodsTitle() {
        return goodsTitle;
    }

    public void setGoodsTitle(String goodsTitle) {
        this.goodsTitle = goodsTitle;
    }

    public Long getGoodsStock() {
        return goodsStock;
    }

    public void setGoodsStock(Long goodsStock) {
        this.goodsStock = goodsStock;
    }

    public String getStartPrice() {
        return startPrice;
    }

    public void setStartPrice(String startPrice) {
        this.startPrice = startPrice;
    }

    public String getEndPrice() {
        return endPrice;
    }

    public void setEndPrice(String endPrice) {
        this.endPrice = endPrice;
    }
}

5、业务层 Service

package com.vim.modules.service;

import com.vim.modules.model.Goods;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.solr.core.SolrTemplate;
import org.springframework.data.solr.core.query.Criteria;
import org.springframework.data.solr.core.query.Query;
import org.springframework.data.solr.core.query.SimpleQuery;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class GoodsService {

    @Autowired
    private SolrTemplate goodsSolrTemplate;

    /**
     * 新增
     * @param goods
     */
    public void add(Goods goods) {
        goodsSolrTemplate.saveBean(goods);
        goodsSolrTemplate.commit();
    }

    /**
     * 删除
     * @param id
     */
    public void deleteById(String id) {
        goodsSolrTemplate.deleteById(id);
        goodsSolrTemplate.commit();
    }

    /**
     * 查询
     * @param goods
     * @return
     */
    public List<Goods> query(Goods goods) {
        Query query = new SimpleQuery("*:*");
        if(StringUtils.isNotBlank(goods.getGoodsName())){
            Criteria name = new Criteria("goodsName").contains(goods.getGoodsName());
            Criteria title = new Criteria("goodsTitle").contains(goods.getGoodsName());
            query.addCriteria(name.or(title));
        }

        if(StringUtils.isNotBlank(goods.getStartPrice())){
            Criteria criteria = new Criteria("goodsPrice").greaterThanEqual(goods.getStartPrice());
            query.addCriteria(criteria);
        }
        if(StringUtils.isNotBlank(goods.getEndPrice())){
            Criteria criteria = new Criteria("goodsPrice").lessThanEqual(goods.getEndPrice());
            query.addCriteria(criteria);
        }
        query.setOffset(0);
        query.setRows(10);
        return goodsSolrTemplate.queryForPage(query, Goods.class).getContent();
    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值