gpt4 book ai didi

sql - 是否可以使用全文索引来查找最接近的匹配字符串?统计语义在全文索引中起什么作用

转载 作者:行者123 更新时间:2023-12-02 21:09:04 25 4
gpt4 key购买 nike

我正在寻找 SQL Server 2016 全文索引,它们非常适合搜索包含字符串的多个单词

当我尝试编写全文索引时,它会将统计语义显示为复选框。统计语义有什么作用?

此外,我想知道您是否想要查询

例如,假设我有一条记录为house。用户输入hause

我可以使用全文索引来返回hause作为最接近的匹配项并向用户显示您的意思是“高效地 build 房子”吗?谢谢

我尝试过 soundex,但它生成的结果很糟糕

它返回了很多不相关的单词

由于我的数据库中有如此多的记录,并且我需要非常快的结果,所以我需要 SQL Server 原生支持的东西

有什么想法吗?有什么方法可以使用索引来实现这样的事情吗?

我知道有多种算法,但它们的效率不足以让我在线使用。我的意思是计算每个记录之间的编辑距离。它们可以用于离线项目,但我需要在在线词典中实现这种效率,因为在线词典中会不断出现数千个请求。

我心里已经有了计划。将未找到的结果存储在数据库中并离线计算最接近的匹配项。并将它们用作缓存。但是,我想知道是否存在任何可能的在线/实时解决方案?考虑将有超过 1 亿条 nvarchar 记录

最佳答案

简短的回答是否定的,全文搜索无法搜索相似但不同的单词。

全文搜索使用stemmersthesaurus文件:

The stemmer generates inflectional forms of a particular word based on the rules of that language (for example, "running", "ran", and "runner" are various forms of the word "run").

A Full-Text Search thesaurus defines a set of synonyms for a specific language.

词干分析器和同义词库都是可配置的,您可以轻松地让 FT 匹配 house 来搜索 hause,但如果您添加 hause 作为 house 的同义词。这显然不是一个解决方案,因为它要求您添加所有可能的拼写错误作为同义词......

Semantic搜索是一个不同的主题,它允许您搜索语义上与给定示例接近的文档。

您想要的是查找具有短 Levenshtein distance 的记录来自给定单词(又名“模糊”搜索)。我不知道有什么技术可以创建可以回答编辑搜索的索引。如果您愿意扫描整个表中的每个术语,Levenshtein 的 T-SQL 和 CLR 实现 exists .

关于sql - 是否可以使用全文索引来查找最接近的匹配字符串?统计语义在全文索引中起什么作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42947596/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com