当前位置: 首页 > news >正文

使用Redis进行搜索

文章目录

  • 构建反向索引


构建反向索引

在Begin-End区域编写 tokenize(content) 函数,实现文本标记化的功能,具体参数与要求如下:

方法参数 content 为待标记化的文本;
文本标记的实现:使用正则表达式提取全小写化后的文本中长度 >= 2 的英文单词,并将这些标记词依次记录到标记词集合中;
返回标记词的实现:返回(return)标记词集合。
编写 index_document(content) 函数,实现构建反向索引的功能,具体参数与要求如下:

方法参数 content 为待构建索引的文本;
分配文本序号的实现:对计数器content:id递增1,并将递增后的值作为该文本的序号;
记录文本全文的实现:将文本作为值,上一步的序号做为域存入到哈希键 contents 中;
获取文本标记词的实现:使用 tokenize 方法获取该文本的所有标记词;
建立索引的实现:遍历所有标记词,使用事务一次性对每个word创建一个名为keyword:{word}的集合,并将该文本的序号加入到该集合中。
代码如下:

#!/usr/bin/env python
#-*- coding:utf-8 -*-import re
import redisconn = redis.Redis()# 文本序列化
def tokenize(content):# 请在下面完成要求的功能#********* Begin *********#words = re.findall(r'\b[a-z]{2,}\b', content.lower())return set(words)#********* End *********## 创建文本的反向索引
def index_document(content):# 请在下面完成要求的功能#********* Begin *********#doc_id = conn.incr("content:id")conn.hset("contents", doc_id, content)words = tokenize(content)for word in words:pipe = conn.pipeline(True)key = "keyword:" + wordpipe.sadd(key, doc_id)pipe.execute()#********* End *********#

在这里插入图片描述


http://www.lryc.cn/news/272580.html

相关文章:

  • Oracle修改用户密码
  • ​LeetCode解法汇总1276. 不浪费原料的汉堡制作方案
  • Vue解决跨域问错误:has been blocked by CORS policy 后端跨域配置
  • 【谷歌云】注册谷歌云 创建Compute Engine
  • 面试数据库八股文五问五答第四期
  • 2023 年中国金融级分布式数据库市场报告:TiDB 位列领导者梯队,创新能力与增长指数表现突出
  • 基于ExoPlayer的缓存方案实现
  • 前缀和算法 -- 寻找数组的中心坐标
  • autograd与逻辑回归
  • Xshell 从github克隆项目:使用ssh方式。
  • C++:通过erase删除map的键值对
  • 华为月薪25K的自动化测试工程师到底要会那些技能!
  • diffusers 源码待理解之处
  • 正则表达式 详解,10分钟学会
  • 【排序算法】归并排序与快速排序:深入解析与比较
  • 万字长文谈自动驾驶bev感知(一)
  • cfa一级考生复习经验分享系列(十七)
  • 机器人活动区域 - 华为OD统一考试
  • 三、HTML元素
  • 置顶> 个人学习记录一览
  • c++重载操作符
  • C# 如何读取Excel文件
  • Vue2面试题:说一下对vuex的理解?
  • elasticsearch系列五:集群的备份与恢复
  • 【Elasticsearch源码】 分片恢复分析
  • elasticsearch如何操作索引库里面的文档
  • opencv期末练习题(2)附带解析
  • 【Mybatis】深入学习MyBatis:高级特性与Spring整合
  • C语言与人生函数的对比,使用,参数详解
  • 机器人动力学一些笔记