我从前端获取了一些字符串,我希望在全文索引视图中找到与尽可能多的字符串匹配的所有条目。示例字符串将是:
Bla di bladi
这可以翻译成这个查询:
SELECT
*
FROM [Schema].[SomeFullTextIndexedView]
WHERE CONTAINS (*, '"*bla*" OR "*di*" OR "*bladi*"')
工作正常。让我们说,为了参数,查询返回这些结果:
Column1 Column2 Column3
bla rte
bla di xxx
bladi tttytyt
bla di bladi
我还想做的是介绍某种排名,其中排名越大,匹配的字符串就越多。然后使用等级对结果进行下降排序:
Column1 Column2 Column3 Rank
bla di bladi 3
bla di xxx 2
bla rte 1
bladi tttytyt
1
我可以利用全文搜索进行搜索吗?感谢。
答案 0 :(得分:1)
通常,您可以使用返回RANK列的FREETEXTTABLE:
SELECT
*
FROM [Schema].[SomeFullTextIndexedView] AS t
INNER JOIN FREETEXTTABLE([Schema].[SomeFullTextIndexedView] , *, '"*bla*" OR "*di*" OR "*bladi*"') as k ON t.Id = k.[key]
ORDER BY k.[RANK] DESC
但在您的示例中,文字字符串不相关且always returns 0。尝试使用真实数据。
答案 1 :(得分:0)
您可以使用CONTAINSTABLE
CONTAINSTABLE生成的表包含一个名为RANK的列。该 RANK列是每行指示的值(从0到1000) 一行与选择标准的匹配程度如何。
mydomain.com/category-slug/article-slug