1.app端文章搜索

1.1 文章搜索

  • 用户输入关键可搜索文章列表,关键词高亮显示,文章列表展示与home展示一样,当用户点击某一篇文章,可查看文章详情,为了加快检索的效率,在查询的时候不会直接从数据库中查询文章,需要在elasticsearch中进行高速检索。
  • 实现思路:
    1. 1. 需要把文章相关的数据存储到es索引库中
    2. 1. 在搜索微服务中进行检索,查询的是es库,展示文章列表,需要根据关键字进行查询
    3. 1. 在搜索的时候,用户输入了关键字,需要对当前用户记录搜索历史

    1.2 索引库文章的自动更新

  • 索引库中的文章数据,要和ap_article库中的文章数据保持一致, 上面在项目初始化阶段我们已经将文章数据导入到索引库,后期当文章库数据发生变化时,我们也要保证索引库数据的一致性.
    • 当article微服务的发布文章方法成功时,需要通知search微服务添加文章索引
    • 当wemedia微服务的上架调用后,需要通知search微服务添加文章索引
    • 当wemedia微服务的下架调用后,需要通知search微服务删除文章索引
  • 实现方式: MQ发送消息,通知索引库进行增加文章索引和删除文章索引

    • 发布文章方法成功时,增加文章索引
    • 文章上架时,增加文章索引
    • 文章下架时,删除文章索引

      2.app端搜索-搜索记录

      2.1 保存用户搜索记录

    • 所用技术亮点: 线程池异步操作 @Async

      3. 搜索词联想

      联想字段仅有文章标题,故使用MongoTemplate中的regex拼接正则表达式达到模糊查询的效果