Redis Search系列 - 第三讲 拼写检查
拼写检查 - Spellchecking & Dict
Spellchecking为拼写错误的搜索词提供建议。例如,术语“reids”可能是“redis”的拼写错误版本。
从v1.4开始,Redis Search可以为拼写错误的查询术语(term)生成替代的方案。拼写错误的术语是全文术语(即单词),即:
- 不是停词
- 不在索引中
- 至少3个字符
拼写错误术语的替代词:
- 从已经索引的术语语料库生成
- 或者(可选)从一个或多个自定义 字典(Dict) 生成
备选项根据它们与拼错词之间的 Levenshtein距离 成为拼写建议,每个拼写建议根据其在索引中的出现次数给出一个标准化分数。
注:
Levenshtein距离(Levenshtein Distance),也称为编辑距离(Edit Distance),
是指两个字符串之间,由一个转成另一个所需的最少编辑操作次数。
允许的编辑操作包括插入一个字符、删除一个字符和替换一个字符。
拼写检查相关命令示例:
# 给出my_idx索引下术语held的拼写错误替代方案,且允许的编辑距离为2
# 多组替代方案按score降序排列
# score = 包含替代术语的文档数 / 文档总数
# dict中的替代术语score恒为0
FT.SPELLCHECK my_idx held DISTANCE 2
1) 1) "TERM"2) "held"3) 1) 1) "0.66666666666666663"2) "hello"2) 1) "0.33333333333333331"2) "help"# 添加字典my_fish(适用于所有索引)
# 字典值包括:[水煮鱼, 水煮肉片, 水煮]
FT.DICTADD my_fish 水煮鱼 水煮肉片 水煮 # 给出my_idx索引下术语“水煮”的拼写错误替代方案,
# 且允许的编辑距离为2,
# 且支持从自定义字典my_fish中生成(支持INCLUDE和EXCLUDE)
FT.SPELLCHECK my_idx 水煮 DISTANCE 2 TERMS INCLUDE my_fish
关于Spellchecking的相关命令FT.SPELLCHECK可参见:
https://redis.io/docs/latest/commands/ft.spellcheck/
关于Spellchecking中自定义字典相关的命令FT.DICTADD、FT.DICTDEL、FT.DICTDUMP可参见:
https://redis.io/docs/latest/commands/ft.dictadd/
https://redis.io/docs/latest/commands/ft.dictdel/
https://redis.io/docs/latest/commands/ft.dictdump/
相关文章:
Redis Search系列 - 第三讲 拼写检查
拼写检查 - Spellchecking & Dict Spellchecking为拼写错误的搜索词提供建议。例如,术语“reids”可能是“redis”的拼写错误版本。 从v1.4开始,Redis Search可以为拼写错误的查询术语(term)生成替代的方案。拼写错误的术语是…...
Golang | Leetcode Golang题解之第492题构造矩形
题目: 题解: func constructRectangle(area int) []int {w : int(math.Sqrt(float64(area)))for area%w > 0 {w--}return []int{area / w, w} }...
Axure重要元件三——中继器函数
亲爱的小伙伴,在您浏览之前,烦请关注一下,在此深表感谢! 课程主题:中继器函数 主要内容:Item、Reperter、TargetItem 1、中继器的函数:Item\Reperter\TargetItem Item item:获取…...
MySQL8.0.40编译安装
近期MySQL发布了8.0.40版本,与之前的版本相比,部分依赖包发生了变化,因此重新编译一版,也便于大家参考。 1. 下载源码 选择对应的版本、选择源码、操作系统 如果没有登录或者没有MySQL官网账号,可以选择只下载 2. 进…...
JavaScript 第23章:WebSocket 与实时通讯
在JavaScript中使用WebSocket进行实时通信是一个非常实用且强大的功能。下面我们将详细介绍WebSocket协议的基础知识、如何使用WebSocket对象以及如何构建一个简单的实时通信应用。 WebSocket 协议 WebSocket是一个在单个TCP连接上进行全双工通信的协议。WebSocket使得数据可…...
简单汇编教程10 数组
目录 实践:相加连续的数 数组是在内存中连续的一串变量。我这样说,可能你已经想到的大致的定义了: NUMBERS DW 34, 45, 56, 67, 75, 89 现在我们就定义了一个Number数组,里面存放的连续的六个数字:34, 45, 56, …...
Jsoup在Java中:解析京东网站数据
对于电商网站如京东来说,其页面上的数据包含了丰富的商业洞察。对于开发者而言,能够从这些网站中提取有价值的信息,进行分析和应用,无疑是一项重要的技能。本文将介绍如何使用Java中的Jsoup库来解析京东网站的数据。 Jsoup简介 …...
SQL 干货 | SQL 反连接
最强大的 SQL 功能之一是 JOIN 操作,它提供了一种优雅而简单的方法,将一个表中的每一条记录与另一个表中的每一条记录结合起来。不过,有时我们可能想从一个表中找到另一个表中没有的值。正如我们将在今天的博客文章中看到的,通过包…...
JSON 反对序列化 public final class LocalDateTime 日期格式错误
错误日志为: java.lang.RuntimeException: com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of java.time.LocalDateTime (no Creators, like default construct, exist): no String-argument constructor/factory meth…...
Java 集合
1. 集合框架概述 集合框架(Collection Framework) 是 Java 中为处理一组对象而设计的一套标准化 API,它包括一组通用的接口、实现类和算法。这些接口和类为各种数据结构和操作方法提供了统一的实现方式,使得开发者可以轻松地对数…...
爬虫日常实战
爬取美团新闻信息,此处采用两种方法实现: 注意点:因为此处的数据都是动态数据,所以一定要考虑好向下滑动数据包会更新的情况,不然就只能读取当前页即第一页数据,方法一通过更新ajax数据包网址页数…...
复写零--双指针
一:题目描述 题目链接:. - 力扣(LeetCode) 二:算法原理分析 三:代码编写 void duplicateZeros3(vector<int>& arr) {int dest -1, cur 0, n arr.size();//1.找到要复写的最后一个数字while …...
跟着小土堆学习pytorch(二)——TensorBoard和Transform
文章目录 一、TensorBoard1.1 add_scalar()1.1,1 报错:TypeError: MessageToJson() got an unexpected keyword argument including_default_value_fields1.1.2 图像重叠1.1.3 代码展示 1.2 add_image()1.2.1 代码 二、transform2.1 介绍——对图片进行一些变化2.2 …...
自由学习记录(10)
Sprite Packer ~Mode & 图集 packer Project Setting经常是金屋藏娇 创建的项目如果不是2d项目,则默认disable打包 编辑模式就是你没点运行看游戏效果,在狼狈敲码创对象写逻辑的那个状态, 运行模式从点了|>之后,就一直…...
Redis提供了专门的命令来实现自增操作
Redis中的自增操作并不是直接通过CAS(Compare and Set)操作实现的。Redis提供了专门的命令来实现自增操作,这些命令能够确保操作的原子性,而不需要显式地使用CAS机制。 Redis中的自增操作 Redis中的自增操作主要依赖于以下几个命…...
uniapp修改input中placeholder样式
Uniapp官方提供了两种修改的属性方法,但经过测试,只有 placeholder-class 属性能够生效 <input placeholder"请输入手机验证码" placeholder-class"input-placeholder"/><!-- css --> <style lang"scss" s…...
GenerativeU:生成式开放目标检测
论文:https://arxiv.org/abs/2403.10191 代码:https://github.com/FoundationVision/GenerateU 感想 目标检测任务已经逐渐从闭集场景专项开集场景,在LLM加持下,速读越来越快。该方法仍然依赖于预先定义的类别,这意味着…...
element plus e-table表格中使用多选,当翻页时已选中的数据丢失
摘要: 点击第一页选中两个,再选择第二页,选中,回到第一页,之前选中的要保留! element ui table 解决办法: :row-key“getRowKeys” (写在el-table中) methods中声明 ge…...
CentOS 7 网络连接显示“以太网(ens33)不可用”
1.创建linux虚拟机,配置网络和主机名显示" 以太网(ens33,被拔出)" 2.桌面右键此电脑,管理,找到“服务和应用程序”,点击“服务”,找到下图两个服务,点击圈起来…...
qt QNetworkProxy详解
一、概述 QNetworkProxy通过设置代理类型、主机、端口和认证信息,可以使应用程序的所有网络请求通过代理服务器进行。它支持为Qt网络类(如QAbstractSocket、QTcpSocket、QUdpSocket、QTcpServer、QNetworkAccessManager等)配置网络层代理支持…...
构建可靠AI编码代理:OpenClaw-Build工作流详解与实战
1. 项目概述:一个能“闭环”的AI编码代理工作流如果你用过市面上那些号称能自动编程的AI代理,大概率经历过这样的挫败感:你满怀期待地丢给它一个需求,它吭哧吭哧干了两三个任务,然后要么开始“神游”,写出来…...
ARM架构TLB失效指令VALE1IS/VALE1ISNXS详解
1. ARM TLB失效指令基础解析在ARMv8/v9架构中,TLB(Translation Lookaside Buffer)作为内存管理单元(MMU)的核心组件,缓存了虚拟地址到物理地址的转换结果。当操作系统修改页表后,必须通过TLB失效…...
mmdetection环境搭建避坑指南:从CUDA版本、pip源到Gitee镜像的全流程优化
MMDetection环境搭建全流程优化:从版本匹配到镜像加速的实战指南 在计算机视觉领域,OpenMMLab系列工具包已经成为许多研究者和开发者的首选。作为其中的核心检测库,MMDetection凭借其模块化设计和丰富的预训练模型,极大地简化了目…...
从虚拟到物理:电子系统原型设计的工程化策略与实战解析
1. 原型设计全景:从概念到实物的工程化思维 在电子系统设计领域,尤其是面对航空航天、汽车电子、通信设备这类高复杂、高可靠性要求的项目时,“原型”这个词的分量远超一个简单的模型。它不是一个可有可无的步骤,而是连接创意与产…...
收藏!小白程序员必看:AI时代如何从执行者变身价值创造者?
本文指出,85%的知识工作者使用AI,但仅16%真正获得突破性价值。这些"前沿专业人士"并非更会使用工具,而是懂得重新定义工作。他们通过保持核心技能敏锐度、判断AI输出质量、构建人机协作系统等方式,创造80%的新价值。文章…...
一文看懂推荐系统:召回05:从One-Hot到Embedding,工业界如何为海量ID类特征降维
1. 从One-Hot到Embedding:工业界的降维革命 第一次接触推荐系统时,我被一个简单的问题难住了:小红书有几亿用户和笔记,每个用户和笔记都有唯一ID,这些ID该怎么处理?直接存成数字显然不行,因为数…...
Arccos Golf数据获取与Python分析实战:开源工具包逆向工程API
1. 项目概述:一个高尔夫数据爱好者的开源工具箱 如果你和我一样,既是个高尔夫爱好者,又对数据分析和自动化工具着迷,那么你很可能听说过Arccos Golf这个平台。它是一个通过传感器和手机应用来追踪每一次击球、分析球场表现的系统。…...
Android数据存储终极指南:SharedPreferences与ContentProviders完全解析
Android数据存储终极指南:SharedPreferences与ContentProviders完全解析 【免费下载链接】android-best-practices Dos and Donts for Android development, by Futurice developers 项目地址: https://gitcode.com/gh_mirrors/an/android-best-practices 在…...
PyTorch Tensor运算的‘潜规则’:运算符重载(如a*b)与函数调用(torch.mul)到底选哪个?
PyTorch运算符重载与显式函数调用的工程实践指南 在PyTorch的日常开发中,我们经常面临一个看似简单却值得深思的选择:该用a b这样的运算符重载,还是显式调用torch.add(a, b)?这个选择不仅关乎代码风格,更影响着团队协…...
用Wireshark抓包分析Powerlink协议:从数据帧看懂主站轮询与从站响应
Wireshark实战:深度解析Powerlink协议的主从站通信机制 工业以太网协议Powerlink凭借其确定性实时通信能力,在自动化控制领域占据重要地位。本文将带您通过Wireshark抓包分析,揭开Powerlink主站轮询与从站响应的核心机制。不同于基础配置教程…...
