首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL Server全文搜索FREETEXTTABLE搜索多列

SQL Server全文搜索FREETEXTTABLE搜索多列
EN

Stack Overflow用户
提问于 2010-08-07 20:22:39
回答 3查看 11.4K关注 0票数 9

我使用下面的查询从一个使用全文搜索的表中返回结果。在SQL2000中,只能搜索表中的一列或所有列。这在SQL 2008中可能吗?

我想搜索两个表,问题和解决方案(这两个表都已索引,并且在同一个表中):

代码语言:javascript
复制
DECLARE @topRank int set @topRank=(SELECT MAX(RANK) 
FROM FREETEXTTABLE([Support_Calls], Problem, 'test', 1)) 
SELECT [ID] AS [Call No],Company_Name, Problem, Solution, CONVERT(VARCHAR(20),CAST((CAST(ftt.RANK as DECIMAL)/@topRank * 100) AS DECIMAL(13,0))) + '%' as Match 
FROM [Support_Calls] INNER JOIN FREETEXTTABLE([Support_Calls], Problem, 'test') as ftt ON ftt.[KEY]=[ID] ORDER BY ftt.RANK DESC;

根据我所看到的,FREETEXTTABLE不接受多个列?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-08-07 21:04:26

您可以在括号中指定它们;使用FREETEXTTABLE(tablename, (col1,col2,col3), 'expr')或使用星号来搜索索引中的所有列。

票数 19
EN

Stack Overflow用户

发布于 2010-08-07 21:09:17

From MSDN

对于包含基于字符的数据类型的值,为这些列返回一个包含零行、一行或多行的表,这些值与指定freetext_string中的文本的含义匹配,但不完全匹配。与常规表名一样,只能在SELECT语句的FROM子句中引用FREETEXTTABLE。使用FREETEXTTABLE的查询指定freetext类型的全文查询,这些查询为每一行返回相关性排名值(RANK)和全文键( key )。

它们提供了以下语法:

代码语言:javascript
复制
FREETEXTTABLE (table , { column_name | (column_list) | * } 
          ,'freetext_string' 
     [ , LANGUAGE language_term ] 
     [ ,top_n_by_rank ] )

所以,是的,Alex K.也说过。

票数 1
EN

Stack Overflow用户

发布于 2013-03-06 21:33:33

如果您在不同的列上创建了全文索引,那么您可以简单地使用CONTAINS或FREETEXT来查看它们中的一个、全部或部分。如下所示:

代码语言:javascript
复制
SELECT *
FROM YourTable
WHERE CONTAINS(*, @SearchTerm);

If you want to look on all the columns that are included in the FULLTEXT INDEX. or:

SELECT *
FROM YourTable
WHERE CONTAINS((ProductName, ProductNumber, Color), @SearchTerm);

如果要指定要搜索的列,请使用。如果您需要一列中的结果,则必须执行一个UNION操作,并对要搜索的每一列进行搜索。

代码语言:javascript
复制
SELECT *
FROM YourTable
WHERE CONTAINS(ProductName, @SearchTerm)
UNION
SELECT *
FROM YourTable
WHERE CONTAINS(ProductNumber, @SearchTerm)
UNION 
SELECT *
FROM YourTable
WHERE CONTAINS(Color, @SearchTerm)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3430386

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档