通过java和redis数据库来实现搜索框联想词功能的代码
时间: 2024-02-05 21:13:21 浏览: 122
以下是一个简单的示例代码,使用Java和Redis实现搜索框联想词功能:
```java
import redis.clients.jedis.Jedis;
public class RedisSearch {
private Jedis jedis;
public RedisSearch() {
this.jedis = new Jedis("localhost"); // 连接本地Redis服务器
}
public void addWord(String word) {
for (int i = 1; i <= word.length(); i++) {
String prefix = word.substring(0, i);
jedis.zadd("prefix:" + prefix, 0, word); // 将单词加入以该前缀为key的有序集合中
}
}
public Set<String> searchWord(String prefix) {
return jedis.zrange("prefix:" + prefix, 0, 10); // 获取以该前缀为key的有序集合中排名前十的单词
}
public static void main(String[] args) {
RedisSearch redisSearch = new RedisSearch();
// 添加一些单词
redisSearch.addWord("apple");
redisSearch.addWord("banana");
redisSearch.addWord("orange");
redisSearch.addWord("grape");
redisSearch.addWord("peach");
redisSearch.addWord("pear");
// 搜索以"ap"开头的单词
Set<String> result = redisSearch.searchWord("ap");
System.out.println(result); // 输出["apple"]
}
}
```
该代码使用Redis的有序集合来存储单词,以每个前缀为key,将以该前缀为开头的单词放入有序集合中。在搜索时,只需要获取以该前缀为key的有序集合中排名前十的单词即可。
阅读全文