需要有关 Sql Server 全文搜索问题的帮助

Posted

技术标签:

【中文标题】需要有关 Sql Server 全文搜索问题的帮助【英文标题】:Need help with Sql Server Full Text Search problem 【发布时间】:2009-04-21 12:57:34 【问题描述】:

我在单个表上有一个Full Text Catalog,定义了三个字段:-

TABLE: Animals
Fields: Name, Breed, LatinName.

现在,目录似乎运行良好。

例如。

CREATE FUNCTION AnimalSearch
(
    @Name NVARCHAR(200)
) RETURNS TABLE AS
RETURN 
(
    SELECT KEY_TBL.[Key] as Name,
        KEY_TBL.RANK as Relevance
    FROM CONTAINSTABLE(Animals, Name, @Name) AS KEY_TBL
)

现在,当我运行它时,我得到以下结果:- 姓名 = ma(无结果) 名称 = 垫子(无结果) 名称 = matt(1 个结果 - 正确)。

SELECT * FROM [dbo].[AnimalSearch]('ma')

这是正确的使用方法吗?我也试过用FREETEXTTABLE 替换CONTAINSTABLE .. 同样的事情.. 没有结果。

有什么想法吗?

编辑

我知道这可以在存储过程中实现。我希望将其作为表值函数来执行,因此我可以在某些 Linq2Sql 中使用它。如果真的表现不佳,请说出来。

【问题讨论】:

【参考方案1】:

不确定这是个好主意。表值函数不存储统计信息,因此性能可能会受到影响。

【讨论】:

我同意米奇的观点。存储过程可以为您提供更好的性能。 嗯。我希望做一个表值函数,因为我可以在 Linq2Sql 中使用它。

以上是关于需要有关 Sql Server 全文搜索问题的帮助的主要内容,如果未能解决你的问题,请参考以下文章

在sql server中参数化全文查询

SQL Server 使用全文索引进行页面搜索

SQL Server 全文搜索

SQL 2008 全文搜索词邻近度

SQL Server 全文索引介绍(转载)

对于 CONTAINS 全文谓词,SQL Server 2008 中的逻辑短路似乎失败