SEMANTICSIMILARITYTABLE生成多少行

时间:2015-09-04 07:44:22

标签: sql-server full-text-search

我在SQL Server 2014中有下表,其中包含全文索引和语义搜索功能,内容'列。

FullTextTable(Id INT PRIMARY KEY,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

问题:为什么上述查询只产生10个结果?行26-49也具有完全相同的内容。 Microsoft的官方文档(https://msdn.microsoft.com/en-us/library/gg492218.aspx)包含一个使用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                   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之间重建索引(完整和增量)。仍然得到相同的结果。

欣赏任何见解。

1 个答案:

答案 0 :(得分:0)