使用SolrJ 7.x 实现商品搜索与筛选

本文介绍了如何使用SolrJ 7.7版本进行商品的搜索和筛选操作。通过添加相关依赖,定义实体类并利用@Field注解映射schema字段,再结合枚举配置核心URL和查询条件,实现SolrClientSingleton单例管理SolrClient。此外,还展示了Service和Controller的实现细节,应用了Lombok和Swagger-ui。
摘要由CSDN通过智能技术生成

solrj API的使用(增删改查)

注:solrj 为 7.7版本,与solr版本一致
使用了Lombok、Swagger-ui


添加依赖
<dependency>
    <groupId>org.apache.solr</groupId>
    <artifactId>solr-solrj</artifactId>
    <version>7.7.0</version>
</dependency>

实体类
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.apache.solr.client.solrj.beans.Field;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class SolrGoodsDto {
   

    @ApiModelProperty("主键")
    @Field
    private Long id;

    @ApiModelProperty("条形码")
    @Field
    private String barcode;

    @ApiModelProperty("销售单价")
    @Field
    private Double unitPrice;

    @ApiModelProperty("主标题")
    @Field
    private String mainTitle;

    @ApiModelProperty("副标题")
    @Field
    private String subTitle;

    @ApiModelProperty("描述")
    @Field
    private String description;

    @ApiModelProperty("图片URL")
    @Field
    private String imgUrl;

    @ApiModelProperty("分类名称")
    @Field
    private String categoryName;
}

@Field注解是关键,属性名应与与manage-schema文件中的<field name=“xx”>对应,如下:

	<field name="id" type="string" indexed="true" stored="true"
		required="true" multiValued="false" />
	<field name="main_title" type="text_ik" indexed="true"
		stored="true" />
	<field name="sub_title" type="text_ik" indexed="true"
		stored="true" />
	<field name="barcode" type="string" indexed="true"
		stored="true" />
	<field name="unit_price" type="pdouble" indexed="true"
		stored="true" />
	<field name="category_name" type="string" indexed="true"
		stored="true" />
	<field name="imgUrl" type="string" indexed="true"
		stored="true" />	
	<field name="description" type="string" indexed="true"
		stored="true" />

然后是返回参数封装的类

import lombok.Data;

import java.util.List;

@Data
public class SolrQueryResult {
   
    //商品列表
    private List<SolrGoodsDto> productList;
    //商品总数
    private Long recordCount;
    //总页数
    private Integer pageCount;
    //当前页
    private Integer curPage;
}

使用了枚举来配置core_url 与 复杂查询条件
<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值