app端文章删除搜索记录,联想搜索

本文详细描述了如何通过编程实现删除用户搜索记录,利用MongoDB存储关联词,并运用正则表达式进行联想搜索,涉及API接口设计和参数验证。
摘要由CSDN通过智能技术生成

        前面说过了保存搜索记录,搜索记录展示,现在来说说删除搜索词,每一个搜索关键词都有一个id,然后再根据当前线程id,删除指定的搜索记录,如下是代码
 

	/**
	 * 删除历史记录
	 * @param dto
	 * @return
	 */
	@Override
	public ResponseResult delUserSearch(HistorySearchDto dto) {
		//1.检查参数
		if (dto!=null){
			//2.判断是否登录
			ApUser user = AppThreadLocalUtil.getUser();
			if (user!=null){
				//3.删除
				mongoTemplate.remove(Query.query(Criteria.where("userId").is(user.getId()).and("id").is(dto.getId())),ApUserSearch.class);
				return ResponseResult.okResult(AppHttpCodeEnum.SUCCESS);
			}

		}

		return ResponseResult.errorResult(AppHttpCodeEnum.NEED_LOGIN);
	}


}

        最后得到的效果就是

        至于联想搜索,这里还是会用到mongodb,需要提前在mongodb中存入关联词数据,我这里用的代码存入

    @Autowired
    private MongoTemplate mongoTemplate;

    //保存
    @Test
    public void saveTest(){

        ApAssociateWords apAssociateWords = new ApAssociateWords();
        apAssociateWords.setAssociateWords("今日访谈");
        apAssociateWords.setCreatedTime(new Date());
        mongoTemplate.save(apAssociateWords);
    }

         然后是根据输入的关键字,通过正则表达式匹配到结果,然后展示出结果,当然,最大条数是20条,以下是代码
 

@Slf4j
@Service
@AllArgsConstructor
public class ApAssociateWordsServiceImpl implements ApAssociateWordsService {
	private MongoTemplate mongoTemplate;
	@Override
	public ResponseResult findAssociate(UserSearchDto dto) {
		//1 参数检查
		if (dto!=null&& StringUtils.isNotBlank(dto.getSearchWords())){
			//分页检查
			if (dto.getPageSize()>20){
				dto.setPageSize(20);
			}

			//3 执行查询 模糊查询
			Query query = Query.query(Criteria.where("associateWords").regex(".*?\\" + dto.getSearchWords() + ".*"));
			query.limit(dto.getPageSize());
			List<ApAssociateWords> wordsList = mongoTemplate.find(query, ApAssociateWords.class);
			return ResponseResult.okResult(wordsList);
		}

		return ResponseResult.errorResult(AppHttpCodeEnum.PARAM_INVALID);
	}
}

        大家一键三连哟,您的支持是我更新的动力,谢谢

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

唐三葬PLUS

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值