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

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.DICTADDFT.DICTDELFT.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/


http://www.kler.cn/news/356960.html

相关文章:

  • CentOS 8 Stream环境下通过yum安装Mysql
  • Spring MVC文件请求处理-MultipartResolver
  • 计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-19
  • 通过监控和警报驯服人工智能野兽
  • HL7协议简介及其在STM32上的解析实现
  • [计算机视觉]chapter1
  • Django 序列化serializers
  • 聊聊Go语言的异常处理机制
  • [H264]x264_encoder_headers函数
  • 并行编程实战——TBB框架的应用之三Supra的配置文件管理
  • Spring Boot 应用程序的 Controller 层中定义一个处理 HTTP DELETE 请求的方法
  • Python | Leetcode Python题解之第494题目标和
  • C++之const指针和const变量
  • 【Python】基础语法-输入输出
  • Mongodb基础用法【总结】
  • ‘perl‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。
  • JS异步编程进阶(二):rxjs与Vue、React、Angular框架集成及跨框架状态管理实现原理
  • 【React】事件绑定的方式
  • 【SSM详细教程】-03-Spring参数注入
  • 解锁A/B测试:如何用数据驱动的实验提升你的网站和应用