考察:ElasticSearch使用(索引库、映射、文档等操作)
    操作数据为:tb_item表和item索引库(索引库需要自己创建)
    image.png
    image.png
    搜索相关业务包括:

    • 设计索引库数据结构
    • 完成数据导入
    • 实现搜索栏自动补全功能
    • 实现过滤项聚合功能
    • 实现基本搜索功能
    • 数据同步

    设计索引库数据结构
    根据搜索页面的需求,判断索引库需要什么字段:
    基本字段包括:

    • 用于关键字全文检索的字段,比如All,里面包含name、brand、category信息
    • 用于自动补全的字段,包括brand、category信息
    • 分类
    • 品牌
    • 价格
    • 销量
    • id
    • name
    • 评价数量
    • 图片

    完成两件事情:

    • 根据每个字段的特征,设计索引库结构 mapping。
    • 根据索引库结构,设计文档对应的Java类:ItemDoc

    数据导入:
    要把数据库数据导入到elasticsearch中,包括下面几步:

    • 1)将商品微服务中的分页查询商品接口定义为一个FeignClient,放到feign-api模块中
    • 2)搜索服务编写一个业务,实现下面功能:
      • 调用item-service提供的FeignClient,分页查询商品 PageDTO
      • 将查询到的商品封装为一个ItemDoc对象,放入ItemDoc集合
      • 将ItemDoc集合批量导入elasticsearch中

    注意:数据库中的商品数量多达9万多个,不可查询索引导入。一定要分页导入。