1

我正在单列上尝试 MS SQL 全文查询。

为此,我正在使用“FREETEXTABLE”功能。

当我查询“骑马”时,结果集包含标题包含“骑”字的视频。

难怪使用 FREE 或“FREETEXTTABLE”时,过程是将查询字符串
分解为单词,创建屈折词,这就是生成结果集的方式。

所以我的问题是,如果这是过程,为什么结果集没有出现“马”字的
视频(我在数据库中有视频,其中视频标题包含“马”字)。

是因为断词器优先考虑“动词”吗?

请评论“断词器”和“词干”如何用于英语。

我可以在其中找到有关“断字器”和“词干”的详细信息的链接也将很有帮助。

这对我每次都获得相关结果非常重要。

谢谢你。

4

1 回答 1

1

全文搜索过滤干扰词和标点符号,您可以灵活地将更多干扰词添加到干扰词的默认列表中。但是要操纵动词、屈折变化或同义词,我们可以在 where 子句中使用不同的功能。
在您的情况下,如果您正在寻找存在“Horse”和“ride”这个词的字段,您可以简单地使用 Contains 函数,就像这样......

SELECT ColumnName
FROM TableName
WHERE Contains(ColumnName, '"horse" AND "ride"') 

如果您正在寻找有“马”一词的值,并且“骑”的任何屈折形式都说像骑,骑。你可以使用这样的东西......

SELECT ColumnName
FROM TableName
WHERE Contains(ColumnName, '"horse"') AND CONTAINS(ColumnName, 'FORMSOF(INFLECTIONAL, ride)')
于 2013-10-16T10:08:13.100 回答