当前位置:   article > 正文

ik分词器实现原理_SpringBoot整合Elasticsearch实现商品搜索

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

中文分词器

  • Elasticsearch有默认的分词器,默认分词器只是将中文逐词分隔,并不符合我们的需求。
  1. get hanzo/_analyze
  2. {
  3. "text": "小米手机",
  4. "tokenizer": "standard"
  5. }
  • 需要安装与Elasticsearch版本相同的ik分词器,ik分词器将小米手机分为小米和手机,符合我们的要求。
  1. get hanzo/_analyze
  2. {
  3. "text": "小米手机",
  4. "tokenizer": "ik_max_word"
  5. }

在SpringBoot中使用

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

  1. /**
  2. * @Author 皓宇QAQ
  3. * @Date 2020/6/4 20:49
  4. * @Description:搜索中的商品信息
  5. */
  6. @Document(indexName = "hanzo", type = "product",shards = 1,replicas = 0)
  7. @Data
  8. public class EsProduct implements Serializable {
  9. private static final long serialVersionUID = -1L;
  10. @Id
  11. private Long goodsId;
  12. @Field(analyzer = "ik_max_word",type = FieldType.Text)
  13. private String goodsName;
  14. @Field(analyzer = "ik_max_word",type = FieldType.Text)
  15. private String goodsIntro;
  16. private Long goodsCategoryId;
  17. private String goodsCoverImg;
  18. private String goodsCarousel;
  19. private Integer originalPrice;
  20. private Integer sellingPrice;
  21. private Integer stockNum;
  22. private String tag;
  23. private Byte goodsSellStatus;
  24. private Integer createUser;
  25. @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
  26. private Date createTime;
  27. private Integer updateUser;
  28. @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone =
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/355616
推荐阅读
相关标签
  

闽ICP备14008679号