商品搜索分词java_SpringBoot整合Elasticsearch实现商品搜索

本文展示了如何在SpringBoot应用中结合Elasticsearch实现商品搜索功能,特别是使用ik_max_word分词器进行中文分词,以及如何通过Elasticsearch Repositories进行衍生查询、综合商品搜索、相关商品推荐的实现。
摘要由CSDN通过智能技术生成

本文主要介绍在Elasticsearch中实现商品搜索功能

中文分词器Elasticsearch有默认的分词器,默认分词器只是将中文逐词分隔,并不符合我们的需求。

get hanzo/_analyze

{

"text": "小米手机",

"tokenizer": "standard"

}需要安装与Elasticsearch版本相同的ik分词器,ik分词器将小米手机分为小米和手机,符合我们的要求。

get hanzo/_analyze

{

"text": "小米手机",

"tokenizer": "ik_max_word"

}

在SpringBoot中使用

在商品信息实体类中用@Document、@Field等注解。对于需要中文分词的字段,我们直接使用@Field注解属性设置为ik_max_word。

/*** @Author 皓宇QAQ* @Date 2020/6/4 20:49* @Description:搜索中的商品信息*/

@Document(indexName = "hanzo", type = "product",shards = 1,replicas = 0)

@Data

public class EsProduct implements Serializable {

private static final long serialVersionUID = -1L;

@Id

private Long goodsId;

@Field(analyzer = "ik_max_word",type = FieldType.Text)

private String goodsName;

@Field(analyzer = "ik_max_word",type = FieldType.Text)

private String goodsIntro;

private Long goodsCategoryId;

private String goodsCoverImg;

private String goodsCarousel;

private Integer originalPrice;

private Integer sellingPrice;

private Integer stockNum;

private String tag;

private Byte goodsSellStatus;

private Integer createUser;

@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")

p

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值