我在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之间重建索引(完整和增量)。仍然得到相同的结果。
欣赏任何见解。
答案 0 :(得分:0)