11_文章搜索
2022-08-03 20:31:05 4 举报
个人小结,随便画画
作者其他创作
大纲/内容
增量索引
通知
MQ
导入
admin微服务自动发布时
搜索历史列表findUserSearch
搜索接口search
读取es
搜索文章
实时搜索联想词searchV1
1. 检查参数 (关键词)2. 模糊查询 联想词表
1. 配置全局线程池2. 在insert方法加@Async代表异步处理3. 检查用户ID 及 搜索词4. 查询行为实体ID 5. 查询是否有该搜索词5.1 有 修改时间5.2 没有新增
监听通知 修改索引库
搜索历史列表
@Async插入搜索记录insert
项目运行时文章数据发生变更,通过消息队列,保证索引库与文章数据库数据的一致性(增量索引)
项目初始化阶段使用工具类,将文章数据库的所有符合条件的文章信息导入到索引库 (全量索引)
调用搜索接口
步骤
SearchRequest : SearchSourceBuilder builder;builder.query(条件对象) // 查询条件QueryBuilders.指定类型的条件match : 对输入的查询条件内容进行分词term : 精准查询range: 范围查询 lt lte gt gtegeo_distance: 距离查询bool: 布尔查询 must should mustnot filterfunction_score : 算分查询 builder.from() .size() // 分页条件 from+size <=10000builder.sort() // 排序条件 默认相关度排序builder.highlight() // 高亮条件 哪个字段 前置 后置builder.aggregation() // 聚合条件 分组 聚合运算(avg sum min max count )SearchResponse client.search(SearchRequest)解析SearchResponse结果
1. 创建esdata工程,用于处理全量索引2. 从article数据库中查询删除状态不为1 且上架的文章信息3. 判断指定索引库是否存在,如果存在删除4. 创建文章索引库 5. 将全部文章数据 批量导入到es索引库中
ES索引库
读取
修改上下架
用户登录 + fromindex为0时插入历史记录
搜索微服务
发布文章
1. admin自动发布文章时,发送mq消息2. wemedia微服务上下架文章,发送mq消息3. 定义文章远程接口,用于获取文章4. search微服务定义文章监听指定主题消息4.1 如果是上架 或 发布文章的主题消息根据文章ID查询文章数据将文章数据保存到索引库4.2 如果是下架文章消息根据文章ID索引库中删除指定文章索引
article数据库
异步插入搜索记录
工具类
删除搜索历史delUserSearch
1. 检查参数2.查询行为实体3. 根据行为实体ID 及 分页查询 时间降序4. 返回查询结果
wemedia微服务文章上下架功能
全量索引
0 条评论
回复 删除
下一页