热词获取改为根据数量,传递count获取系统热搜词语

This commit is contained in:
Chopper 2021-07-30 14:27:41 +08:00
parent 6e611d3464
commit 0760c72ef8
6 changed files with 35 additions and 10 deletions

View File

@ -115,8 +115,8 @@ public class GoodsBuyerController {
@ApiOperation(value = "获取搜索热词")
@GetMapping("/hot-words")
public ResultMessage<List<String>> getGoodsHotWords(Integer start, Integer end) {
List<String> hotWords = goodsSearchService.getHotWords(start, end);
public ResultMessage<List<String>> getGoodsHotWords(Integer count) {
List<String> hotWords = goodsSearchService.getHotWords(count);
return ResultUtil.data(hotWords);
}

View File

@ -244,6 +244,17 @@ public interface Cache<T> {
*/
Set<ZSetOperations.TypedTuple<Object>> reverseRangeWithScores(String sortedSetName, Integer start, Integer end);
/**
* zrevrange命令, 查询Sorted Set中指定范围的值
* 返回的有序集合中score大的在前面
* zrevrange方法无需担心用于指定范围的start和end出现越界报错问题
*
* @param sortedSetName sortedSetName
* @param count 查询数量
* @return 获取满足条件的集合
*/
Set<ZSetOperations.TypedTuple<Object>> reverseRangeWithScores(String sortedSetName, Integer count);
/**
* 向Zset里添加成员

View File

@ -224,7 +224,7 @@ public class RedisCache implements Cache {
@Override
public void incrementScore(String sortedSetName, String keyword) {
//指向key名为KEY的zset元素
redisTemplate.opsForZSet().incrementScore(sortedSetName,keyword, 1);
redisTemplate.opsForZSet().incrementScore(sortedSetName, keyword, 1);
}
@Override
@ -247,6 +247,20 @@ public class RedisCache implements Cache {
return this.redisTemplate.opsForZSet().reverseRangeWithScores(sortedSetName, start, end);
}
/**
* zrevrange命令, 查询Sorted Set中指定范围的值
* 返回的有序集合中score大的在前面
* zrevrange方法无需担心用于指定范围的start和end出现越界报错问题
*
* @param sortedSetName sortedSetName
* @param count 获取数量
* @return 符合排序的集合
*/
@Override
public Set<ZSetOperations.TypedTuple<Object>> reverseRangeWithScores(String sortedSetName, Integer count) {
return this.redisTemplate.opsForZSet().reverseRangeWithScores(sortedSetName, 0, count);
}
/**
* 向Zset里添加成员

View File

@ -29,14 +29,14 @@ public interface EsGoodsSearchService {
/**
* 获取热门关键词
*
* @param start 查询范围开始位置
* @param end 查询范围结束位置
* @return
* @param count 热词数量
* @return 热词集合
*/
List<String> getHotWords(Integer start, Integer end);
List<String> getHotWords(Integer count);
/**
* 设置热门关键词
*
* @param hotWords 热词分数
*/
void setHotWords(HotWordsDTO hotWords);

View File

@ -102,9 +102,9 @@ public class EsGoodsSearchServiceImpl implements EsGoodsSearchService {
}
@Override
public List<String> getHotWords(Integer start, Integer end) {
public List<String> getHotWords(Integer count) {
List<String> hotWords = new ArrayList<>();
Set<DefaultTypedTuple> set = cache.reverseRangeWithScores(CachePrefix.HOT_WORD.getPrefix(), start, end);
Set<DefaultTypedTuple> set = cache.reverseRangeWithScores(CachePrefix.HOT_WORD.getPrefix(), count);
for (DefaultTypedTuple defaultTypedTuple : set) {
hotWords.add(Objects.requireNonNull(defaultTypedTuple.getValue()).toString());
}

View File

@ -30,7 +30,7 @@ public class HotWordsManagerController {
@ApiOperation(value = "获取热词")
@GetMapping
public ResultMessage getHotWords() {
return ResultUtil.data(esGoodsSearchService.getHotWords(0, 99));
return ResultUtil.data(esGoodsSearchService.getHotWords(99));
}
@ApiOperation(value = "设置热词")