gpt4 book ai didi

sql-server - 具有 ContainsTable 的多列和带有全文索引的 bool 逻辑

转载 作者:行者123 更新时间:2023-12-02 10:13:05 34 4
gpt4 key购买 nike

我有一个非常基本的场景,但我所读到的内容听起来使用 SQL Server 全文目录和索引并不容易。

我有 2 列,名字和姓氏。我想支持对它们的全文搜索,这样如果有人输入“John Smith”,则第一个和最后一个两者匹配的人会首先出现。

虽然跨多列创建索引很容易,也很容易搜索多列,但评分并不反射(reflect)多列。

SELECT [Key], Rank 
FROM CONTAINSTABLE([User], (FirstName,LastName), '<CLAUSE_HERE>')
  1. 如果 CLAUSE_HERE 是“john smith”,我不会得到任何结果,因为该短语在两个字段中都不存在。
  2. 如果是“john OR smith”,我会获取任一字段中具有任一名称的所有用户,并按无用的顺序排序。
  3. 如果是“john AND smith”,我不会得到任何结果,因为两个字段都不包含这两个单词。

似乎唯一的解决方案是自动生成一个在每个字段上运行 containstable 的查询,进行一些数学计算,对分数求和等。这听起来正确吗?有更简单的方法吗?我的实际查询有更多字段 - 这是一个简化的示例。

最佳答案

制作computed column它将您有兴趣搜索的字段混合在一起(以对您的搜索格式有意义的方式),并对其进行全文索引。

据我所知,如果由于您在问题中描述的行为而想要以这种方式进行全文,这是唯一的解决方法。

关于sql-server - 具有 ContainsTable 的多列和带有全文索引的 bool 逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1801285/

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