Sql server SEMANTICSIMILARITYTABLE生成多少行

Sql server SEMANTICSIMILARITYTABLE生成多少行,sql-server,full-text-search,Sql Server,Full Text Search,我在SQL Server 2014中有下表,在“内容”列上启用了全文索引和语义搜索 FullTextTable(Id INT主键,Content NVARCHAR(MAX)) 我试图使用Sql Server中的SEMANTICSIMILARITYTABLE来查找与第25行内容相似的行。碰巧第15-49行的内容完全相同。对于内容相同的行,我得到的分数列为1 案例1: SELECT * FROM SEMANTICSIMILARITYTABLE(FullTextTable,Content,25) AS

我在SQL Server 2014中有下表,在“内容”列上启用了全文索引和语义搜索

FullTextTable(Id INT主键,Content NVARCHAR(MAX))

我试图使用Sql Server中的SEMANTICSIMILARITYTABLE来查找与第25行内容相似的行。碰巧第15-49行的内容完全相同。对于内容相同的行,我得到的分数列为1

案例1:

SELECT * FROM SEMANTICSIMILARITYTABLE(FullTextTable,Content,25) AS KEY_TBL  
ORDER BY KEY_TBL.score DESC;
GO
结果:

source_column_id | matched_column_id | matched_document_key | score
2                  2                   15                     1
2                  2                   16                     1
2                  2                   17                     1
2                  2                   18                     1
2                  2                   19                     1
2                  2                   20                     1
2                  2                   21                     1
2                  2                   22                     1
2                  2                   23                     1
2                  2                   24                     1
source_column_id | matched_column_id | matched_document_key | score
2                  2                   17                     1
2                  2                   18                     1
2                  2                   19                     1
2                  2                   20                     1
2                  2                   21                     1
2                  2                   22                     1
2                  2                   23                     1
2                  2                   24                     1
问:为什么上面的查询只产生10个结果?第26-49行的内容也完全相同。Microsoft()的官方文档包含一个示例,该示例使用
Top 10
将结果限制为10行。然而,我找不到任何文件证明这是一个内部限制

案例2:我试图限制结果集以避免ID为15和16的行

SELECT *
FROM SEMANTICSIMILARITYTABLE(FullTextTable,Content,25) AS KEY_TBL
where matched_document_Key not in (15,16)   
ORDER BY KEY_TBL.score DESC;
GO
结果:

source_column_id | matched_column_id | matched_document_key | score
2                  2                   15                     1
2                  2                   16                     1
2                  2                   17                     1
2                  2                   18                     1
2                  2                   19                     1
2                  2                   20                     1
2                  2                   21                     1
2                  2                   22                     1
2                  2                   23                     1
2                  2                   24                     1
source_column_id | matched_column_id | matched_document_key | score
2                  2                   17                     1
2                  2                   18                     1
2                  2                   19                     1
2                  2                   20                     1
2                  2                   21                     1
2                  2                   22                     1
2                  2                   23                     1
2                  2                   24                     1
问题:虽然现在已从结果集中删除了第15行和第16行,但为什么不再添加2以生成数字10?因此,对于最大行数,此数字10不能是函数的内部限制。有人能解释一下吗

注意:我试图在案例1和案例2之间重新构建索引(完整和增量)。结果还是一样


非常感谢您的见解。

返回的行似乎有内部限制。这个链接是从2012年开始的,但它似乎仍然是真的


链接将来可能会过时-最好在此处总结答案。欢迎使用堆栈溢出!虽然此链接可以回答问题,但最好在此处包含答案的基本部分,并提供链接供参考。如果链接页面发生更改,则仅链接的答案可能无效。看见