【问题标题】:Fulltext search not returning expected results全文搜索未返回预期结果
【发布时间】:2010-06-03 09:59:52
【问题描述】:

我正在试验 SQL Server 全文搜索。

我有一个简单的以 Id 作为主键的类别表:

CREATE TABLE [dbo].[Category](
 [Id] [int] IDENTITY(1,1) NOT NULL,
 [CategoryName] [varchar](100) NOT NULL,
)

我的查询是:

SELECT * 
FROM
 FREETEXTTABLE (Category, CategoryName, 'music') AS F
 INNER JOIN  Category C ON F.[Key] = C.Id
ORDER BY F.Rank DESC

这会返回几条带有单词 music 的记录,但它不会返回任何带有单词“musical”的记录。

虽然,可以说被搜索的字符串不是很大,使用LIKE操作符就可以解决。我想使用全文搜索,因为这个简单的示例将被扩展为包括其他表格和文件。

【问题讨论】:

标签: sql-server full-text-search


【解决方案1】:

如果要匹配前缀,可以使用 containstable 代替 freetexttable,并在搜索词中包含通配符:'music*'

【讨论】:

  • 根据您的建议,我尝试了此查询 SELECT * FROM CONTAINSTABLE (Category, CategoryName, 'music*') AS F INNER JOIN Category C ON F.[Key] = C.Id ORDER BY F .Rank DESC 给出相同的结果。只是排名不同
  • 我的语法不好。试试 '"music*"' (外层是单引号,内层是双引号)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-05-20
  • 2020-05-04
  • 2021-07-06
  • 2021-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多